Twitter同步新浪微博的一个解决方案

作者: 阮一峰

日期: 2012年1月31日

国内的微博服务之中,新浪腾讯的市场份额最大。

但是,它们的平台比较封闭,不提供Feed输出,而且存在强行删除用户发言、关闭用户帐号的情况。所以,我一直以来都使用Twitter

Twitter属于墙外网站,墙内的大部分用户看不到。春节假期里,我就在想,能不能把Twitter同步到墙内?

下面就是我的解决方案:

总体思路是,先将Twitter同步到一个自建的Wordpress,然后再将Wordpress同步到新浪和腾讯。

具体做法如下:

第一步,搭建一个Wordpress。

安装方法请参考官方网站。注意,这个Wordpress必须搭建在墙外。

第二步,安装Twitter Tools插件。

参考Doug Bowman的说明,将Wordpress改建成Twitter备份。完成后的效果请看我的备份

第三步,安装wp-sns-share插件。

在该插件的设置页面,打开"微博同步功能",将"微博同步"选项设为"发布文章时",将"微博格式"改成"%desc",然后完成新浪微博和腾讯微博的授权,就可以了。

(2012年4月更新:wp-sns-share 2.5版代码有错。请打开wp-sns-share/wp-sns-share.php文件,找到下面这行代码,把它注释掉

if(!isset($_POST['WPSNSShare_widget_sync'])) return;

把它注释掉。)

第四步,安装untco插件。

Twitter默认把一切链接,转化成t.co短域名,而新浪微博提示这个域名为有害链接,会报错。所以,我只好自己写了上面的插件,将所有t.co链接转成对应的原始链接。

完成上面四步以后,Twitter应该已经可以同步到新浪和腾讯了。大家试用以后,有问题的话请在下面留言。

最后,我的Twitter账户是twitter.com/ruanyf,新浪微博的账户是weibo.com/ruanyf,欢迎follow。

(完)

留言(44条)

这样的方法没有问题,只不过单独建立一个WordPress的成本略高,WP的效率也颇低。第三方服务是不用指望了,肯定短时间内被整顿,倒是开源工具可以考虑想,希望有开发者跟进了。

玩微博都属于新潮了,我们这一代人潮不起;也没那么多时间精力去玩;更没时间精力去钻研。唉
家里的父母也不懂QQ 也没有微博,他们最爱就是和子女面对面地唠嗑。

twitter同步到墙内还是tw2other最好用

有点复杂啊!..

顶一下,终于有weibo可以follow了~ 呵呵~

不错,不算复杂;只是个人认为玩中文的话Twitter貌似信息量没有新浪微博大,所以我还是用新浪的多些,即便我在墙外

引用pala的发言:

twitter同步到墙内还是tw2other最好用

同感

艹,很给力的方法啊,真是道高一尺魔高一丈!

tw2other

今天刚刚正式开始用新浪微博账号,就看到这篇文章了。不过看起来这个方法很复杂。

反向同步的需求更多些吧?不然发推还得翻

本来想通过godaddy的免费空间搭一个wordpress在把twitter上的推同步到新浪和腾讯,结果发现2011年1月14日之后购买域名的就享受不到免费空间的服务了....

如果是发了带上传图片的微博呢?也可以成功同步吗

感谢分享。个人以为操作起来不够简便,twitter或者新浪的移动客户端可以看到news的碎片,利用各种闲散时间进行快速阅读和回复是很好的方法,通过第三方有点麻烦,再者还需wp的成本。

期待阮兄常同步新浪weibo。

微博140个字不给力,博客才是关键

引用梁雄杰的发言:

微博140个字不给力,博客才是关键

完全是两种东西,不冲突。深度阅读博客好,及时消息或者新闻微薄更佳


文中说到要安装twitter tool 装好了 但同步到wp博客的还是有t.co的链接 twitter tool 要如何设置? 新浪的没成功 因为新浪说有非法网站 腾讯的可以同步 但是“链接同步”有问题 腾讯是用了自己的短链吧 把t.co的短链转换的有问题 比如同步到wp的短链是 "http://t.co/mthx8iP4" 看腾讯微博上显示的原始链接"http://t.co/mthx8iP4..." 所以打开会出错 不知道这该如何解决

我只是想问一问联通宽带可以用什么软件到墙外,希望有人可以告诉我…

还有一种情况,我用chrome的扩展publish sync,一般成功验证添加那几个服务,之后在不翻墙的情况下也能够成功同步,我一直还没有明白为什么.可以试试.

@叔叔本来华丽:

去网上搜一下VPN和SSH。

@ll:

你装了最后那个untco插件吗?

引用阮一峰的发言:

你装了最后那个untco插件吗?

装了 也激活了 那个twitter tool装了有什么用吗 也激活了 看里面有附带的2插件

引用ll的发言:

装了 也激活了 那个twitter tool装了有什么用吗也激活了 看里面有附带的2插件

那就奇怪了,t.co怎么会没还原呢?……可能性一:你的主机本身就连不上t.co;可能性二:你的主机没安装curl模块。

还有,我是只激活了twitter tool一个插件,它捆绑的插件都没激活,要不你也这样试试。

引用ll的发言:

文中说到要安装twitter tool 装好了 但同步到wp博客的还是有t.co的链接 twitter tool 要如何设置? 新浪的没成功 因为新浪说有非法网站 腾讯的可以同步 但是“链接同步”有问题 腾讯是用了自己的短链吧把t.co的短链转换的有问题 比如同步到wp的短链是 "http://t.co/mthx8iP4"看腾讯微博上显示的原始链接"http://t.co/mthx8iP4..."所以打开会出错 不知道这该如何解决

两种可能。

1、untco插件没有发生作用(检查数据库中wp_posts.post_content是否含有t.co的短链接,如果有那就是插件没发生作用),分两种情况。
(a)untco没有安装/激活成功。不妨看看apache的log(/var/log/apache2/error.log)。
(b)Tweet中的短链接是https开头(untco插件只处理了http开关的)。修改untco_findLinks函数。

2、发送到新浪微博的内容含有anchor标签,比如

Unicode in Python: <a href="http://goo.gl/Sox9b" rel="nofollow">http://goo.gl/Sox9b</a>

如果你在“分享到sns”插件中测试改善上面的内容,会提示“非法网站”错误(直接在微博测试也一样)。

我的Hack是把<a href="http://goo.gl/Sox9b" rel="nofollow">http://goo.gl/Sox9b</a>转换成http://goo.gl/Sox9b。

相关代码:https://gist.github.com/1731863

引用imwilsonxu的发言:

Tweet中的短链接是https开头(untco插件只处理了http开关的)。

据我所知,t.co不可能是https开头的吧。

如果原始链接是https,那么t.co短链还是http。

引用imwilsonxu的发言:

我的Hack是把<a href="http://goo.gl/Sox9b" rel="nofollow">http://goo.gl/Sox9b</a>转换成http://goo.gl/Sox9b。

相关代码:https://gist.github.com/1731863

去除超级链接还有一个方法。

打开wp_sns_share插件的源文件,在WPSNSShare_weibo_get_short_desc函数定义的开始位置插入一行:

$content=preg_replace("/<a[^>]*?href=[^>]*?>|<\/[^a]*?a[^>]*?>/i","",$content);

作用是去除所有的a标签。

其实已经有人写了 H2Weibo 这样的东西,能够导入到新浪微博,能够尝试把其它人帮顶过的 ID 进行翻译。假如这套系统的同一个实例有很多好友在用的话,ID 翻译还是有意义的。同时 #hashtag 也会被翻译为非空格结束的 #hashtag#。

http://h2weibo.cloudfoundry.com/

引用Cat Chen的发言:

其实已经有人写了 H2Weibo 这样的东西,能够导入到新浪微博。

http://h2weibo.cloudfoundry.com/

这个好啊!

如果早知道有这个程序,我就不自己做了。

搞得这么复杂,ifttt不行么?

如何反过来让新浪微博同步到Twitter?

用ifttt可以实现twitter to wordpress

腾讯微博有feed输出,有两种。不过现在好像关了。

follower在微薄上的回复能反馈到你twitter上去吗?

引用阮一峰的发言:

这个好啊!

如果早知道有这个程序,我就不自己做了。

这个不能用,一点auth with twitter就504

今天按博主的方法试了下,发现tweet同步到wordpress就不自动同步到新浪微博了,非得自己写一篇,或者更新时才可以。
最后发现是wp-sns-share最新的2.5版必须要编辑页面保存才会同步到新浪微博,换成2.4的就OK了

引用我是我的发言:

今天按博主的方法试了下,发现tweet同步到wordpress就不自动同步到新浪微博了,非得自己写一篇,或者更新时才可以。
最后发现是wp-sns-share最新的2.5版必须要编辑页面保存才会同步到新浪微博,换成2.4的就OK了

2.5版代码有错。你打开wp-sns-share/wp-sns-share.php文件

找到下面这行代码,把它注释掉

if(!isset($_POST['WPSNSShare_widget_sync'])) return;

把它注释掉。

引用阮一峰的发言:

2.5版代码有错。你打开wp-sns-share/wp-sns-share.php文件

找到下面这行代码,把它注释掉

if(!isset($_POST['WPSNSShare_widget_sync'])) return;

把它注释掉。

还是不行

谢谢博主,正好用上你介绍的这个方法。
我原来使用的tw2other不知为何这两天不起作用了,可能是新浪对于未经审核的api应用接口作了权限变更。

能否针对SAE改造一下,我的想法是通过SAE架设的wordpress做为中转站,问题的关键在插件。

能同步别人的推文吗 ?请问

谢谢你分享这么好的知识。我刚学习建站,这对我帮助很大。但是有一点我还不清楚,下载wp-sns-share 后是不是要先付费才可以使用?我根据它的要求选择项目,但是还不能用,能否帮帮解释一下? 再次感谢!

能够将Tweets生成wordpress日志,但是生成的日志无法被同步到新浪等。

还有,默认的是每15分钟生成一次wordpress日志。能否将这个时间改为1分钟?

我有同样的问题。自己写一篇博客就可以同步到新浪等。但是自动生成的博文不能同步到新浪。

我也是和Tom一样,自己写一篇博客就可以同步到新浪等。但是自动生成的博文不能同步到新浪。

现在用 IFTTT 就很方便了。

我要发表看法

«-必填

«-必填,不公开

«-我信任你,不会填写广告链接