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

分类:wordpress 浏览:12,640次
WordPress代码实现文章发布后自动发一条新浪微博(Access Token)

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

获取 Access Token

如果应用还在审核中:

申请方法:https://janecc.cdn.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;
}

作者: JaneCC最后编辑于:2017-05-17 14:58
坚持把简单的事情做好就是不简单,坚持把平凡的事情做好就是不平凡。所谓成功,就是在平凡中做出不平凡的坚持。

--JaneCC

众说纷纭Comments1条留言

  1. 沙发
    :

    前些日子试了下还可以同步到微博,好像现在不可以了,取消了statuses/upload_url_text这个接口啊 😤

    来自Google Chrome 45.0.2454.101Windows 10的精彩回复 [回复]

发表感言