同步效果
api介绍
发表一条微博api https://graph.qq.com/t/add_t
调用需要用到的参数 官方介绍
1 2 3 4 | openid = '5321BEETEST1FEA402B790EA65993C1C' ; //此处是你的用户openid oauth_consumer_key = '101183846' ; //此处是你的QQ互联应用APP ID access_token = '276DB4F2086TEST34E3B123CAA30719C' ; // 此处是你的QQ验证登录和授权的access_token content = '【文章发布】test pic NO.9' ; //此处是微博内容 |
准备工作
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
1. 获取Authorization Code
访问下列网址,返回code数据。注意:用你要发微博的QQ帐号授权登录
1 | 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互联应用里的回调地址
返回值
1 | code =058F35AD2C10CED5D78D2CCTEST1C211 |
2. 获取Access_Token
访问下列网址,返回Access_Token数据
1 | 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互联应用里的回调地址
返回值
1 | access_token=276DB4F2086TEST34E3B123CAA30719C&expires_in=7776000&refresh_token=92357511C7D123E01234CA446030F00E |
获取用户OpenID
访问下列网址,返回用户OpenID数据
1 | https: //graph.qq.com/oauth2.0/me?access_token=276DB4F2086TEST34E3B123CAA30719C |
需要更改的参数
- access_token 是你上一步的 access_token
返回值
1 | callback( { "client_id" : "101183846" , "openid" : "5321BEETEST1FEA402B790EA65993C1C" } ); |
部署代码
把下面代码加在主题的functions.php
中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | //同步腾讯微博 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 ) ; $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); |