做个项目,须要用到twitter的接口 (如果用过新浪的微博接口,会发现大同小异)
访问twitter 须要挂vpn,第一天用朋友的killwall 连上一会就断,异常不爽,然后用了‘我的VPN’效果还不错 偶尔会断掉,关键是免费的,速度也不错
首先注册个账号,然后访问twitter的说明文档,接口列表,这有个中文文档有些老
但不妨碍, 英文结合这个 能明白差不多了;
我现在想要用的一个接口是statuses/home_timeline
注意这个接口须要授权 并且有调用次数的限制;
调用接口之前须要先创建一个应用,name,description,website按自己需求来填写,由于须要先在本地调试 我填写了http://127.0.0.1/twitter/index.php这个地址,回调地址填写的是http://127.0.0.1/twitter/callback.php 最后点击‘create your twitter application’ 完成应用的创建
打开刚给创建的应用,在应用的下面有keys and Access Token选项 打开他, 里面的API Key ,API Secret后面会用到
现在须要下载一个Twitter 认证的类库,百度了好多,发现一个名叫twitteroauth的php库很不错 很小,里面的例子也很详细;下载好之后 放到本地工作目录下的twitter下面
打开config.php 填写好配置文件(密钥在 keys and Access Token选项 下面)
打开index.php 修改23行的接口调用地址为我所需要的statuses/home_timeline,然后访问:http://127.0.0.1/twitter/index.php
经过跳转提示登录twitter账户(已登录的不会提示) 然后跳转到授权页面 同意授权,最后返回首页,首页会罗列出,授权人的twitter和授权人关注的人的最新推特,默认是返回20条,可以通过参数来进行配置
如果有错误会打印出错误信息,错误代码查看
基本的操作就完成了 注:以上操作都须要在VPN链接正常情况下完成
下面是部署到服务器上了,国内的服务器也须要翻墙,所以我用的是泡菜国的服务器,
ftp一直连不上,一直以为配置出错了,最后居然是我连的是日本的VPN 无法链接韩国的服务器,果断断了VPN 链接一切正常,
最后修改twitter应用的配置,然后再访问服务器,一切正常。总算完成了。
PS:由于我做的项目是自动抓取,所以不可能每次都须要让用户来授权,如何来避免授权呢?
理一下授权的顺序:访问应用---->监测是否存在密钥---->不存在请求twitter-----》登录授权-----》返回应用
所以只须要在监测密钥时 稍微修改即可:
上述流程的密钥是保存在session中的,打印session,将session的值记录,访问应用的时候 直接赋值密钥即可,跳过授权
PS PS:新浪微博与twitterd的文档地址:
新浪微博:API参考文档
API调试 OAuth的相关流程
Twitter :API参考文档 API调试 OAuth的相关流程