提醒:本文最后更新于 3737 天前,文中所描述的信息可能已发生改变,请仔细核实。
其实这种文章应该挺多的,而且也不难。但确实不知发点啥了。。。但是不写点又不行。。。所以。。。
正常来说,只要按照本文的图片+文字,就可以搞定了。
月底暂时就这样了。超级忙啊。。。
9月就要到了,貌似中秋可能要加班,小烦。
言归正传。
首先,如图所示。在open.weibo.com/development,创建网站接入应用,审核通过率较快较高。
创建完,下一步,在open.weibo.com/webmaster,选择刚才创建的网站。可以看到状态是审核中。
不管,我们接着下一步,在左侧栏->网站信息,可以看到App Key和App Secret,复制下来,一会有用。
在左侧栏->网站信息->关联微博,关联一下我们自身的微博,就是创建了这个网站接入的微博帐号。
OK,下一步,我们在左侧栏->接口管理->授权机制,里面有个OAuth2.0 授权设置,编辑,为(取消)授权回调页填上:http://127.0.0.1/weibo/callback.php,详细如图所示:
接下来,下载附件weibo.rar。
内含windows NT5/6下可用的nginx+php和weibo授权文件。请务必解压后将目录放在C盘根目录下,目录下有说明文件,请仔细阅读,并且我做了bat文件,如下图所示。
先按1后按3,完成操作后,可得到如下信息:
再按2,结束掉nginx+php。
最后将下面这段代码放到functions.php,顺便改下里面的Access token的值就好了。
add_action('publish_post', 'new_post_weibo'); function new_post_weibo($post_ID) { global $wpdb; if(!wp_is_post_revision($post_ID)){ $access_token = "这里填入刚才获取到的Access token"; $url = "https://api.weibo.com/2/statuses/update.json"; $status = "我刚刚发布了新文章《".get_the_title($post_ID)."》,快来看看吧。详细内容请点击:".get_permalink($post_ID); $data = "access_token=" . $access_token . "&status=" . urlencode ($status); $output = json_decode(post_by_curl($url,$data)); } } function post_by_curl($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); $body = @curl_exec ( $ch ); @curl_close ( $ch ); return $body; }
以上基于@大发、@牧风两位的文章所作(添加了nginx+php、新版weibo开发平台的图)。感谢二位!
本来函数带有自动附带文章图片,但貌似用的人不多,而且有些是国内机机,带宽不大,而且流量又有限制。所以就没有完整分享。
因微博登录,恐怕没多少人使用,加上我也不愿意使后台用户过多,所以博客就没有创建。
微博登录可以不用利用token,因为非创建者的token,只有7天有效期,需要维护。而创建者自身token是5年有效期。
站内应用(SAE)也可以通过类似方式创建。
文章到此结束~EOF。
转载请注明转自:kn007的个人博客的《WordPress 新文章同步微博详解》
太麻烦。。还有就是nginx
@郑永: 这跟nginx没啥关系吧!?我也是nginx
如何支持同步图片呢?我需要这个功能哦..
@BestChao: 刚刚手机砸坏了。没心情。
请自行看api。注意头类型不要错就行。
@kn007: 深表同情,不过对于我技术盲而言,似乎有些困难,我换个时间再来请教您好了。
@BestChao: 嗯,再说吧,晚些时间我直接贴上来吧
@kn007: 我加您QQ了,不知道可否通过下?
@BestChao: 没上Q
刚刚看过新浪微博开放平台的API,不知道是说的http://open.weibo.com/wiki/2/statuses/upload对应的thumbnail_pic字段说明吗?
@BestChao: 。。。。。。请重新仔细看,好吧。那是返回字段,代表是图片的缩略图。你是要请求,还没请求,看返回干嘛。发送的参数是pic。返回是其他用处的。
@kn007: 我不是很懂代码,kn007您可以贴出来参考下吗,请求的api说明是否可以给一个链接?
@BestChao: 你刚才的链接不是写的很清楚。
你刚才的链接中的:请求参数、注意事项
写的非常清楚了
@kn007: 哦,看到了,那我如果测试,是否可以固定图片同步?如下
$access_token = "2.00KOo64c92jdFyyD";
$url = "https://api.weibo.com/2/statuses/update.json";
$status = "我刚刚发布了新文章《".get_the_title($post_ID)."》,快来看看吧。详细内容请点击:".get_permalink($post_ID);
$pic = "http://www.lienew.com/wp-content/themes/presscore-lite/img/t1.jpg";
$data = "access_token=" . $access_token . "&status=" . urlencode ($status);
$output = json_decode(post_by_curl($url,$data));
@BestChao: 搞错了
@kn007: 图片是以什么形式提交的呢,貌似不能直接是图片路径吧
@BestChao: 看注意事项,是二进制
@kn007: 是否可以贴出代码参考下,对于非专业的我有些困难了。
@BestChao: 还是可以固定声明提交方式?
目前$data为字符串,注意事项注明需要multipart/form-data编码方式提交,这样的话我是不是要写成数组Content-Type才是multipart/form-data编码形式提交?
@BestChao: 聪明
@BestChao: https://kn007.net/topics/new-posts-wordpress-synchronous-weibo-with-articles-featured-image/