使用新浪微博开放平台api同步网站内容至自己微博的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用新浪微博开放平台api同步网站内容至自己微博的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3609字,纯文字阅读大概需要6分钟。
内容图文
![使用新浪微博开放平台api同步网站内容至自己微博的问题](/upload/InfoBanner/zyjiaocheng/204/d7b04d67f0c24eadb7f3d7839511aafc.jpg)
同步到微博大概有三种方法,插件、关联博客、非插件微博接口
第一种,直接百度搜索就可以;
第二种,由于新浪现在已经取消了关联博客的选项,但该功能却没有被取消你可以放问下面这个地址,然后配置一下就可以了
第三种方法需要使用新浪的接口,如下操作:
1)到新浪微博开放平台创建一个站内应用,通过不通过审核都可以,只不过通过的话可以在微博下方显示来自某某应用,如来自KingGoo技术博客image ,具体怎么创建你可以在百度谷歌上搜索一下,很简单(但如果你一直没有通过审核,还想通过审核的话,我可以提供有偿帮助嘎嘎~),创建好应用后,下面需要使用到申请应用的 App Key;
2)编辑你主题的functions.php文件,在其最后加入如下代码
// 微博同步function post_to_sina_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; //去掉文章内的html编码的空格、换行、tab等符号(如果你文章的编码格式是这样子,可以将下面的"//"去掉即开启此功能) //$get_post_centent = str_replace("\t", " ", str_replace("\n", " ", str_replace(" ", " ", $get_post_centent))); $get_post_title = get_post($post_ID)->post_title; if ( $get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish' ) { $request = new WP_Http; $status = '【' . strip_tags( $get_post_title ) . '】 ' . mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, 132,'...') . ' 全文地址:' . get_permalink($post_ID) ; $api_url = 'https://api.weibo.com/2/statuses/update.json'; $body = array( 'status' => $status, 'source'=>'4135063399'); $headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); /* 如果你使用改方法,请注释掉上面$headers = array( 'Authorization' => 'Basic ' . '1fFjYc3uQHZpcF32fS5jb146MxFeY19DYF53aWfzNA==' ); 换成如下代码 //你的新浪微博登陆名 $username = '' ; //你的新浪微博登陆密码 $password = '' ; $headers = array( 'Authorization' => 'Basic ' . base64_encode('$username:$password')); */ $result = $request->post( $api_url , array( 'body' => $body, 'headers' => $headers ) ); }}add_action('publish_post', 'post_to_sina_weibo', 0);
文中需要用到wordpress自带的WP_Http类,在github找了一个代替品:https://github.com/duoshuo/easy-http
关于该类的说明:EasyHttp是一个帮助你忽略不同的php环境情况,无差别地发送http请求的php类。 你不再需要关注当前php环境是否支持curl/fsockopen/fopen,EasyHttp会自动选择一个最合适的方式去发出http请求。 EasyHttp源于WordPress中的WP_Http类,去除了所有对WordPress其他函数的依赖,将其拆分到不同的文件中,并做了少量简化。
根据以上内容,写php代码1.php:
$status, 'source'=>'这里appkey');$headers = array( 'Authorization' => 'Basic ' .'这里64位编码后的用户名和密码' );$result = $r->post( $api_url , array('body' => $body, 'headers' => $headers ) );print_r($result);?>
浏览器访问1.php时返回以下内容:
Array ( [headers] => Array ( [server] => nginx/1.2.0 [date] => Sun, 13 Oct 2013 02:23:46 GMT [content-type] => text/plain;charset=UTF-8 [content-length] => 76 [connection] => close [api-server-ip] => 10.75.0.170 [vary] => Accept-Encoding [x-varnish] => 3299864740 [age] => 0 [via] => 1.1 varnish ) [body] => Bad Content-Type header value: 'application/x-www-form-urlencoded; charset=' [response] => Array ( [code] => 400 [message] => Bad Request ) [cookies] => Array ( ) [filename] => )
好像是400 Bad Request,百度了下,意思是“由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。”
请问各位这个问题怎么入手解决?
回复讨论(解决方案)
还是看这个博客吧,,,http://zhangge.net/4947.html
内容总结
以上是互联网集市为您收集整理的使用新浪微博开放平台api同步网站内容至自己微博的问题全部内容,希望文章能够帮你解决使用新浪微博开放平台api同步网站内容至自己微博的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。