很早就听说新浪开放了自己的微博API,而且是完全开放的,就像twitter一般。新浪微博 API,覆盖了新浪微博的全部功能,可以通过 API 发微博,传照片,加关注,甚至搜索等全部功能,这等于不用上新浪微博就可以做任何事。虽然自己不玩新浪微博,目前@hesiway仅有一条信息,但常年驻扎在新浪微博上的朋友同步 WordPress 博客日志到新浪微博来推广自己的博客却一种很好的方式。API一开,类似插件就蜂拥而至了。其中我看到我爱水煮鱼开发的插件很有启发,并且给出了开发思路:
首先是创建更新状态到新浪微博的函数,这里用到的是WordPress 自带的WP_Http
类。
function update_sina_t(status){username = "你的新浪微博的帐号";
password = "你的新浪微博的密码";api_url = 'http://api.t.sina.com.cn/statuses/update.json';
body = array( 'status' =>status,'source'=>'3279848611');
headers = array( 'Authorization' => 'Basic '.base64_encode("username:password") );request = new WP_Http;
result =request->request( api_url , array( 'method' => 'POST', 'body' =>body, 'headers' => $headers ) );
}
然后 WordPress 日志发布之后的 hook 是publish_post
,在这个action 执行的时候执行上面的函数,从而同步 WordPress 博客日志到新浪微博,但是这样任何一次在 WordPress 后台点击更新日志都会触发这个 action,就要用自定义字段记录是否已经把日志同步到了新浪微博:
add_action('publish_post', 'publish_post_2_sina_t', 0);
function publish_post_2_sina_t(post_ID){sina_t = get_post_meta(post_ID, 'sina_t', true);
if(sina_t) return;
status =_POST['post_title'].' '.get_permalink(post_ID);
update_sina_t(status);
add_post_meta($post_ID, 'sina_t', 'true', true);
}
复制以上两处代码到主题的 functions.php
文件就可以了。我测试了下,发现这样每次更新完博客日志后就会发一条本文标题和链接到新浪微博。这也引起了我对新浪微博API的兴趣,查看了它的API文档和开发指南,大致了解了一番,收获不少。
来这看看……
新浪本身就有这个同步WP博客的功能,我正在用着了 :嘻:
@freetstar @freetstar, 恩,是滴,~他都自己提供了这功能~
现在流行微博啊,呵呵,都吧微博放博客上了!
@闲云野鹤 @闲云野鹤, 这是把博客更新提交到微博~
看来WP真的很强哦
唉,早知道用WP了
@刘志猛 @刘志猛, WordPress是用来折腾的~现在改过来也好啊~呵呵
@刘志猛 @刘志猛, PJ可以转换成WP :偷笑:
多加几个微博啊,有的没的全加,加强宣传! :强:
@glwzu @glwzu, 账号@hesiway,要加的感觉咯~
:偷笑:
@灵亦 @灵亦, :嘻:
转载继续
@A.L @A.L, :嘻: 记得加署名~
这个方法很邪恶额啊!
@4399 @4399, :帅:
这个功能倒是非常的实用的
@sky @sky, 呵呵,对我不用微博的人用处不大,学习的是个思路~ :微笑:
的确看到很多人都这样操作了
@先看看 @先看看, 恩。简单有效~
要去试一试 :强:
@视界之窗 @视界之窗, :微笑: 很实用的一个方法~
新浪微薄自己就带着同步关联工具
@丕子 @丕子, 恩,是有现成的工具~这里只讲了个思路而已~
现在的微博api开放得很好啊~特喜欢~
@小松 @小松, 恩,国内目前微博就新浪有前途~
等学习结束了,我也去折腾一下,话说我的新浪微博还没发过推···哈哈
@杜小白 @杜小白, 新浪暗地里也是挺强大的,貌似还有云计算服务的。
@杜小白 @杜小白, 我的也荒废着~现在应该能一天发一条更新了~
博主测试成功了?我也要去注册个号试试
@岸边 @岸边, 我主题在functions.php添加代码就出错,
@岸边 @岸边, 刚才看了代码,发现代码中“>”被转码了,现在试试~
@hesiway @hesiway, 我直接用的插件了,挺方便的。 :嘻:
和我用的差不多 呵呵
@阿邙 @阿邙, 恩~思路应该差不多~方法不唯一~
cool,试试去
@昵称 @昵称, 恩,很好的功能扩展~
呵呵,终于开放了,之前不是说不开放的吗?相信最终拥有了开发者还是走向了封闭的吧
@fly3q @fly3q, 开放才能长久生存下去~