WordPress文章同步分享到腾讯微博

有了同步到新浪微博,不给腾讯来个同步,说不过去吧。哈哈,说干就干,下面介绍下怎么使用QQ互联的api实现文章自动同步。

同步效果

20150124092641

api介绍

发表一条微博api https://graph.qq.com/t/add_t

调用需要用到的参数 官方介绍

openid = '5321BEETEST1FEA402B790EA65993C1C'; //此处是你的用户openid
oauth_consumer_key = '101183846';   //此处是你的QQ互联应用APP ID
access_token = '276DB4F2086TEST34E3B123CAA30719C';// 此处是你的QQ验证登录和授权的access_token
content = '【文章发布】test pic NO.9';    //此处是微博内容

准备工作

oauth2.0_guid_11

1. 申请appid和appkey的用途

appid:应用的唯一标识。在OAuth2.0认证过程中,appid的值即为oauth_consumer_key的值。

appkey:appid对应的密钥,访问用户资源时用来验证应用的合法性。在OAuth2.0认证过程中,appkey的值即为oauth_consumer_secret的值。

申请地址

申请流程

1. 点击页面上的“申请加入”按钮,申请成为开发者;

(1)申请appid(oauth_consumer_key/client_id)和appkey(auth_consumer_secret/client_secret);

(2)进入 http://connect.qq.com/manage/ 页面,点击“立即添加”,在弹出的对话框中填写网站或应用的详细资料(名称,域名,回调地址);

2. 点击“确定”按钮,提交资料后,获取appid和appkey。

注意:申请appid时,登录的QQ号码将与申请到的appid绑定,后续维护均需要使用该号码。

注意:对appid和appkey信息进行保密,不要随意泄漏。

2. 保证连接畅通

接入QQ登录时,网站需要不停的和Qzone进行交互,发送请求和接受响应。

1. 对于PC网站:请在你的服务器上ping graph.qq.com ,保证连接畅通。

2. 对于WAP网站:请在你的服务器上ping open.z.qq.com和ping graph.z.qq.com,保证连接畅通。

3. 移动应用无需此步骤

获取Access_Token

oauth2.0_guid_1

1. 获取Authorization Code

访问下列网址,返回code数据。注意:用你要发微博的QQ帐号授权登录

https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=101183846&redirect_uri=http://www.ykuaile.net&state=test

需要更改的参数

  • client_id 是你的你的QQ互联应用APP ID
  • redirect_uri 是你的QQ互联应用里的回调地址

返回值

code =058F35AD2C10CED5D78D2CCTEST1C211

2. 获取Access_Token

访问下列网址,返回Access_Token数据

https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id=101183846&client_secret=941c938aec1test5b18e0c85fe4744c0&code=058F35AD2C10CED5D78D2CCTEST1C211&redirect_uri=http://www.ykuaile.net

需要更改的参数

  • client_id 是你的QQ互联应用APP ID
  • client_secret 是你的QQ互联应用APP KEY
  • code 是你上一步的Authorization Code
  • redirect_uri 是你的QQ互联应用里的回调地址

返回值

access_token=276DB4F2086TEST34E3B123CAA30719C&expires_in=7776000&refresh_token=92357511C7D123E01234CA446030F00E

获取用户OpenID

oauth2.0_guid_13

访问下列网址,返回用户OpenID数据

https://graph.qq.com/oauth2.0/me?access_token=276DB4F2086TEST34E3B123CAA30719C

需要更改的参数

  • access_token 是你上一步的 access_token

返回值

callback( {"client_id":"101183846","openid":"5321BEETEST1FEA402B790EA65993C1C"} );

部署代码

把下面代码加在主题的functions.php

//同步腾讯微博
function post_to_tencent_weibo($post_ID) {
	if (wp_is_post_revision($post_ID)) return;  //修订版本(更新)不发微博
	$get_post_info = get_post($post_ID);
	$get_post_centent = get_post($post_ID)->post_content;
	$get_post_title = get_post($post_ID)->post_title;
	if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
		$openid = '5321BEETEST1FEA402B790EA65993C1C'; //此处是你的用户openid
		$oauth_consumer_key = '101183846';   //此处是你的QQ互联应用APP ID
		$access_token = '276DB4F2086TEST34E3B123CAA30719C';// 此处是你的QQ验证登录和授权的access_token
		$request = new WP_Http;
		$keywords = "";

		//获取文章标签关键词
		$tags = wp_get_post_tags($post_ID);
		foreach ($tags as $tag ) {
			$keywords = $keywords.'#'.$tag->name.'# ';
		}

		$content = '【文章发布】' . strip_tags( $get_post_title ).':'.mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') .$keywords. ' 查看全文:' . get_permalink($post_ID) ;

		$api_url = 'https://graph.qq.com/t/add_t';
		$body = array('oauth_consumer_key' => $oauth_consumer_key , 'format' => 'json','access_token' => $access_token ,'content' => $content,'openid' => $openid);
		$result = $request->post($api_url, array('body' => $body));

	}
}
add_action('publish_post', 'post_to_tencent_weibo', 0);

声明: 未经本站许可,谢绝转载!

0 个主题帖 其中:热心观众:0 个, 管理员:0 个

抱歉,评论被关闭