使用新浪微博开放平台api同步微博内容至自己网站(wordpress网站可以写php代码1.php文件测试.php)

优采云 发布时间: 2021-10-19 07:08

  使用新浪微博开放平台api同步微博内容至自己网站(wordpress网站可以写php代码1.php文件测试.php)

  据说wordpress网站可以在发帖时将文章同步到新浪微博,想写一个php代码测试基于同样的方法。以下内容引自:

  微博同步方式大致有插件、关联博客、非插件微博三种方式

  第一种是直接在百度上搜索;

  其次,因为新浪现在取消了链接博客的选项,但该功能并未取消。可以询问下面的地址,然后进行配置。

  第三种方法需要使用新浪的接口,如下:

  1) 前往新浪微博开放平台创建站内应用。审核不通过没关系,但是如果通过了,可以在微博底部展示来自XX的应用,比如来自KingGoo科技博客的图片。如何创建它?在百度google上搜索,很简单(但是如果你没有通过审核想通过审核,我可以提供付费帮助嘎嘎~),创建应用后,需要使用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上找到了替代品:

  关于这个类的一个说明:EasyHttp是一个php类,可以帮助你忽略不同的php环境条件,乱发送http请求。您不再需要关注当前的 php 环境是否支持 curl/fsockopen/fopen,EasyHttp 会自动选择最合适的方式进行 http 请求。EasyHttp 派生自 WordPress 中的 WP_Http 类,它去除了对其他 WordPress 功能的所有依赖,将其拆分为不同的文件,并进行了少量的简化。

  根据以上内容,编写php代码1.php:

  当浏览器访问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 [变化] => 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。百度一下,意思是“由于语法格式错误,服务器无法理解这个请求。不修改,客户端程序不能重复这个请求。”

  你怎么解决这个问题?

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线