WordPress代码实现文章发布后自动发一条新浪微博(Access Token)


本站试过好几种( E享乐大发贱志)文章发布后自动发一条新浪微博但是都不行,我想多半是登录信息的问题,下面这种方法是结合上述两种方法实现的文章发布后自动发一条新浪微博。

获取 Access Token

如果应用还在审核中:

申请方法:https://img1.ixu.me/get-weibo-access_token.html

如果应用已经通过审核:

API测试工具:http://open.weibo.com/tools/console

wordpress-post-article-send-sinaweibo-access-token-2

代码

将以下代码填上自己的 Access Token 后放入主题函数模版 functions.php 。代码有注释,希望可以帮助大家理解一点。

/*
文章发表后自动发一条新浪微博(标题+摘要+链接+图片)
作者:E享乐(www.exiang2.com)
*/
add_action('publish_post', 'E_post_weibo');//钩子,在文章发布时执行
function E_post_weibo($post_ID) {
$token = '2.00xxxxxxxxxxxxxxxxxxxxx';//填写你的access_token
$get_post_info = get_post($post_ID);//获取文章信息
if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) {
$status = strip_tags( $_POST['post_title'] ) .':'.mb_strimwidth(strip_tags(apply_filters('the_content',$_POST['post_content'])),0,200,"...").get_permalink($post_ID);//微博文字内容 标题+摘要+链接
if(preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$_POST['post_content'],$match)){//判断文章是否包含图片
$img = stripslashes(preg_replace('/["]+/i','',$match[1]));//输出第一张图片地址
$url = 'https://api.weibo.com/2/statuses/upload_url_text.json';//api接口
$data = "access_token=" . $token . "&status=" . $status."&url=".$img;
}
else{//无图片则使用 2/statuses/update 接口
$url = 'https://api.weibo.com/2/statuses/update.json';
$data = "access_token=" . $token . "&status=" . $status;
}
json_decode(weibo_do_post($url,$data));//执行curl模拟POST
}
}
//curl模拟POST
function weibo_do_post($url, $data) {
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, TRUE );
curl_setopt ( $ch, CURLOPT_POST, TRUE );
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $data );
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
$ret = curl_exec ( $ch );
curl_close ( $ch );
return $ret;
}

声明:Shire | 一路走一路记|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - WordPress代码实现文章发布后自动发一条新浪微博(Access Token)


Carpe Diem and Do what I like