Octopress 推特挂件大局域网内显示问题

Twitter 挂件估计很多 Octopressor 都在用,但由于它直接调用的 Twitter Api,又不像以前的 Wordpress 一样有带缓存的插件,在天朝的大局域网内对一般青年来说只能看到个鸟,经过 Lucifr 的摸索,现在折腾了一个方法,目前至少让 timeline 显示了出来。

具体方法如下:

  1. 首先是要在一台境外服务器上搭建 twip,这个具体就不详述了,参照 @yegle指导或是网上他人的教程即可。

  2. 确定你搭建的 twip 的 T 模式的地址,如果 twip 的地址是 http://example.com/twip/,那么 T-mode 的地址就是 http://example.com/twip/t/

  3. 打开 Octopress/source/javascripts/twitter.js,在其中 73 行可以找到

    url: "http://api.twitter.com/1/statuses/user_timeline/" + user + ".json?trim_user=true&count=...
    

    用以上的 T 模式地址替换掉 Twitter 的 api,也就是这样

    url: "http://example.com/twip/t/statuses/...
    
  4. 如果 twip 运转正常,那么这时生成的网站就应该可以显示出 timeline 了。但有一个小问题,就是别人也可以利用你搭建的这个 twip 来制作挂件或是访问那个不存在的网站,这样一来流量不保就麻烦了(当然你要造福人民我也不拦着)。

    请教过 @yegle 后 Lucifr 又对 nginx 的 rewrite 规则进行了修改:

    location / {
        if (!-e $request_filename){
            rewrite ^/twip/t/statuses/user_timeline/你的 Twitter 用户名.json(.*)$ /twip/index.php last;
            }
        }
    

    这样一来这个 twip 就只有在获取你自己的 Timeline 时才能使用了(同时也可以删掉 oauth.php 来关掉 O 模式)。

Lucifr

Read more posts by this author.

Beijing, China http://lucifr.com