另一份Twip4搭建Twitter API教程

本文发布已超过一年,其中的内容可能已经过时。

网上其实已经有很多这样的教程了,不过还是不停地有人遇到各种各样的问题然后问我怎么搭。其实按我的经验,只要空间支持(下面会介绍一个我自己用的简单的测试方法)、设置正确(大部分问题应该都是出在这里),搭建过程不会有一点问题,顺利的话十分钟都可以搞定。
废话就说到这里,下面进入正题。

这篇文章会结合我自己搭建许多api的成败经验讲解:

  • 如何确定一个空间是否支持twip
  • 如何申请和设置twitter app
  • 如何设置twip
  • 特别常见问题的处理

这篇文章不会教你:

  • 如何找到免费空间
  • 如何注册免费空间
  • 如何设置空间和域名
  • 如何使用FTP上传文件
  • 如何获取和部署SSL证书

    1、概述

相信会进到这里看这篇文章的都知道Twitter是何物罢,当然如果你不知道,世界上还有个叫谷歌的东西。。。
呐,上面我们提到的这个Twitter网站由于某些原因不能从天朝访问,所以需要使用代理,而twip就是一个这样的代理,它利用Twitter极好的开放性,通过Twitter的第三方应用接口(API)来访问Twitter帐号,支持api功能的客户端通过它就可以正常使用了。

    2、准备工作

要搭建Twip4代理,需要具备以下条件:

  • 支持twip的PHP空间
  • 一个Twitter app
  • 一份twip源程序

如果能够加上SSL证书可以大大降低api被墙掉的风险,不过依然不是绝对安全。因为对空间有一定要求以及需要一些知识和技术背景,本文不涉及此步骤。

下面做具体说明。

首先是空间:
因为我们搭的这个本质上是一个翻墙代理,所以,聪明的,你应该懂得,用来放twip的这个主机一定要在墙外;另外,对空间还有一些细节的要求,比如没有屏蔽Twitter(对,有些墙外的主机会屏蔽twitter,估计就是为了防止用户搭建代理)和对一些特定函数的支持。
关于这点,twip官方提供了一份已知不支持twip的免费空间列表:

This page lists the known unsupported free hosts, and twip has no plan to support them!

* godaddy
* bytehost
* 000webhost.com
* host1free.com
* zymic.com

其中godaddy仅指其免费空间,据说是页面上强制加入的广告会影响twip工作;不过,我在godaddy的Linux免费空间上搭建twip4是成功了的(Windows主机失败),如果你正好有一个,也可以试试。

其实在函数方面,大部分空间是支持的,所以我们需要关注的主要矛盾就是空间是否屏蔽了twitter.com
当然,网上也有一些文章讲解如何在屏蔽了twitter的空间上搭建twip,基本原理大约是把程序代码中twitter.com的域名改为ip地址,不过我没有成功过,又因为改代码毕竟不很方便,就不在这里讲解了,有兴趣的童鞋们可以自己去问谷歌大神。

关于空间对twitter.com的支持性,有一个简便的测试方法(独家哦),就是先在空间上传一个PHProxy或其他任何可用的网页代理,访问twitter.com看是否能打开,如果正常打开了,就说明空间是支持的;没有,我的话就直接放弃了。。。
那为神马要用PHProxy呢?有三点原因:一是这个网页代理只有20+k,上传它比上传twip要快很多,避免了建好twip后才发现空间不支持的情况,节约时间;二是有了这个,空间上不光有了api还有了网页代理,利用效率更高;三是在根目录放上网页可以防止访问时暴露出目录结构,增加api的安全性。

好了,废话不多说,上传PHProxy到网站根目录,通过你的二级域名http://spaceid.example.com/访问,出现如下界面:

在地址框输入 twitter.com 后点击最下面的那个Browse按钮,如果空间支持,就会打开twitter首页。

    3、Twitter app

这里我认为你已经有了一个符合要求的空间,下面讲解如何在Twitter官网注册一个应用。

首先访问 http://dev.twitter.com/ ,虽然通过twitter.com登录后在也可以在设置中找到app管理,但是使用专门为开发者准备的dev.twitter.com要更加方便,功能也更为强大。
登录后,找到Rigister an app, 进入app申请界面,参照下图填写各项:

下面对比较重要的项目做下说明。
Application Name:这是app的名字,也就是每一推的via/from的那个东西,不能是别人已经用过的,也不能有/ 等一些会合法出现在url中的符号
Description:app的描述,随便填但是必须达到一定长度(貌似是10个字)
Application Website:点击via后面你的app名字后跳转的网址,可以随便填,不建议填成api的真实地址
Organization:app创建者,随便填
Application Type:必须选择Browser
Callback URL:很重要,也是很多人搭建失败所在,填成你的twip所在的根目录,比如 http://spaceid.example.com/twip/ 最后的那个 / 必须有
Default Access type:权限,如果设成只读就只能看推不能发了
Application Icon:app的logo,建议新建app时先留空,因为很容易飞大鲸鱼;其实就用默认的也没什么,如果实在看着不爽,就之后再修改app加上

然后输入验证码,提交,成功则出现如下界面:

这个页面上会有我们接下来需要的两个重要的东西 Consumer keyConsumer secret ,建议暂时不要关闭这个页面。

    4、修改twip代码

下载一份twip代码(建议直接svn),解压,用编辑器(推荐PSPad,不建议使用系统自带的记事本)打开config-example.php ,参照下面的注释进行修改:

一般说来,api出于安全考虑,不建议开启日志记录,如果开启则会记录下用户的ip等信息,出于某些你懂的原因,这样有很大的安全隐患,所以保持默认值(关闭)比较好;至于压缩,因为有些主机可能不支持,所以作者默认没有开启,不过我的经验是一般都支持,开启后如果有奇怪的问题再关闭也可。

修改完成后将文件另存为config.php,如果你用的记事本,要注意有没有保存成config.php.txt

    5、部署和认证

将修改完成的twip程序上传到网站,此时需再次确认有没有放到正确的地方,twip的位置一定要和Callback URL一致,也就是说你在浏览器地址栏直接输入Callback URL就应该能打开twip首页。
上传完成后用浏览器访问twip,看到如下页面:

新版 Gravity 6700 及后续版本支持T模式地址,直接点T模式即可获得一个形如 http://spaceid.example.com/twip/t/ 的api地址,相当于一个单纯的网页代理,推文依然会显示via Gravity;此处我们以o模式讲解oauth认证。

选择o模式,出现认证页面

此处可填入任意字符串,这个字符串会作为你最后的api地址的一部分,如果留空则会生成随机的六位字符串。
点击认证,跳至Twitter官网(也可以用模拟Oauth功能在墙内完成认证,不过如果比较在意安全性,还是建议使用普通oauth到官网去完成认证)

图中我标注了一下注册app时各项对应显示的地方,便于理解

点allow,跳转回twip,得到api地址

将这个api地址填入客户端即可,发送的推文会显示为via你自己的那个app名。

至此,Twip4已经搭建完毕。

    6、特别常见问题的处理

1. 如果访问Callback URL出现白屏,在后面加上/index.html即可,也就是使用这个地址 http://spaceid.example.com/twip/index.html
2. 出现种种错误请先检查官网app设置中的Callback URL和twip配置文件中的BASE_URL以及实际文件所在的地址是否一致
3. 如果还是不行,可能是函数不支持,我无能为力了
4. 认证后跳转回twip时出现代码溢出,尝试刷新
5. 有时候一些莫名其妙的问题可以通过重新认证解决
6. 不建议使用 /twip/ 作为api所在的目录,最好使用随机字符串
7. 被墙后可以尝试修改twip所在目录来复活api,不过要注意官网和配置文件中的地址要一并修改

    7、一些补充

1. 关于api的使用方法可以参考官方wiki的这个页面
2. 由于twip的升级,o模式api地址和图中所示有所不同,不过不影响本教程的实用性(确实是完全不影响),如果想了解细节可以参看我的这篇这篇日志。
3. 图中的那个api已经删除,不用尝试去访问了,只会得到404的
4. Twitter官网做了调整,现在注册app时只需要填写基本信息,注册成功后才能修改读写权限等详情,不过各项的设置方法依然适用本文 (UPDATE 2011-12)
5. Twip项目已由Google Code迁移至GitHub,项目地址为 https://github.com/yegle/twip (UPDATE 2012-03)
6. 新版Twip4对官网app设置中的Callback URL不再敏感,Callback URL可随意填写,只需保证twip配置文件中的 BASE_URL 与程序实际所在地址相同即可 (UPDATE 2012-04)

写这么长的文章很辛苦,转载请注明出处 http://atr.me/NGC45 ,谢谢合作。

{ 发表评论? }

  1. dddd Unknow Browser Unknow Os

    twip已经被GFW关键字认证了 这篇文章实际上是行不通的

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

 

Pingback & Trackback

  1. 另一份Twip4搭建Twitter API教程 | 蘑菇天文馆 « 截图党 Unknow Browser Unknow Os - Pingback on 2011/04/03/ 15:16