in 偶知道

[教程] 同步twitter到国内微博客

本文受众:用twitter、有自己的php空间、需要把twitter同步到国内的微博客及某些网站。

原来的方案已经不能用了。虽然国内微博客如嘀咕、做啥……长时间被和谐后终于死灰复燃,虽然复燃后丫们仍然号称自己可以同步到buboo、hellotxt(可以通过这些网站中转到twitter),但实际测试从来没成功过。新方案采用中转程序把twitter上的信息直接发送到嘀咕,在从嘀咕同步到其它国内网站。受twitterfeed的限制,每30分钟同步一次,每次最多5条。

原帖来自月光博客和传说中forgotthemilk写的同步程序CustomURL,但月光的介绍不会编程的人实在看不懂,个么在这里介绍得详细一些。并对代码做了些修改:

1、增加了密码验证,以确保程序不会被别人盗用;
2、从twitter获得的RSS,每句前面会出现多余的"username: "字串,月光的方案里专门在twitterfeed之前写了一段程序过滤,我把过滤功能放到了CustomURL里,以避免程序直接访问twitter,从而让墙内的php空间也能够使用。(but...见ps.1)

需要注册的网站:twitter.comping.fmtwitterfeed.comdigu.com

同步的流程为: twitter -> twitterfeed -> ping.fm -> CustomUrl -> 嘀咕 -> 人人、新浪微博……

1、下载源程序,解压

  twitter_sync.zip (17.6 KiB, 655 hits)

修改 miniblog.php 的前两行:

$pw = '123456'; //自定义一段密码,以防止程序被他人盗用
$twitter_username = 'fivestone'; //你的twitter用户名

修改 twitter_rss.php 的第一行:

$username = 'fivestone'; //你的twitter用户名

修改 ping.fm 的前两行:

$digu_user = 'fivestone';
$digu_passwd = 'passwd'; //你在digu.com的用户名和密码

(程序里还列出了一堆可以同步到的网站,包括zuosa和buboo,是否可用我没去测试,都注释掉了,有需要的同学可以自己去试试)

将所有文件上传到php空间的某个路径下,譬如 http://test.fivestone.info/twitter_sync/

2、登录ping.fm,在 Add More Networks 中添加 Custom URL ,输入你的miniblog.php的上传地址,后面加上你刚刚在miniblog.php中设置的密码,如:

http://test.fivestone.info/twitter_sync/miniblog.php?pw=123456

Use for: Status updates (和下面friendfeed中的设置一致)

提交后,在 setting 中选上 Enable my account 和 Post messages to Custom URL

访问 ping.fm/key ,得到你的 Desktop / Web Key

3、登录twitterfeed.com,Create New Feed

Step 1: Send Feed to: -> Show More Services -> ping.fm,输入刚刚得到的key,点击Get Available Methods,设置ping.fm method to update: status(和ping.fm中的Use for一致即可)

Continue to Step 2,输入的你的twitter的RSS地址,格式为:上传地址/twitter_rss.php

http://test.fivestone.info/twitter_sync/twitter_rss.php

设置 Advanced Settings,如图,点击放大

4、用你的嘀咕的账号密码登录嘀神(digusync.com),设置你需要绑定的国内网站。

--------------------------------------
就这样。其实之所以兜这么大一个圈子,主要是为了利用twitterfeed的触发机制,如果php空间本身支持计划任务,完全可以一个独立程序搞定。或许回头可以改一改,只把friendfeed当做纯粹的触发器用?又或许可以移植到 Google App Engine 或者直接写成Wordpress的插件,但后者就需要服务器在墙外了。

ps.1,不知为什么,如果让twitterfeed直接获得twitter的RSS地址,处理的结果中文都会变成乱码。所以需要先用twitter_rss.php处理一遍,但这样做的后果是程序无法在墙内的php空间上执行。大家找一找,墙外有没有靠谱的RSS转录网站(才发现feedburner居然不收twitter的rss了),可以把twitter的rss处理后送到twitterfeed,这样其它的程序就可以在墙内空间上运行了。

ps.2,好像每次我写这种攻略帖都会迅速世易时移变成无用功。。。刚刚发现在 digusync 的同步设置里,新增同步到开心网的设置消失了,但我以前设置的到开心网的同步却还能用。完全不明白是怎么回事。。。

Write a Comment

Comment

  1. ps.2,好像每次我写这种攻略帖都会迅速世易时移变成无用功。。。刚刚发现在 digusync 的同步设置里,新增同步到开心网的设置消失了,但我以前设置的到开心网的同步却还能用。完全不明白是怎么回事。。。

    唉,我也很幽怨。