api是应用程序接口的意思,在twitter的api上,具体就是你把你想要发出的信息发送给api服务器,这个服务器再发送给twitter的服务器,同样,twitter的信息发送给api服务器,api再发送给你。
但twitter不能随便把谁的信息都随便发啊,所以要认证身份,其实就是登陆,登陆以后就可以只把你这个账号想看的东西给你,不会出现错乱。
那么api怎么认证账号呢?有两种方式,一种叫做basic认证,就是我们之前常用的输入账号和密码登陆的方式,另一种就是我们要说的oauth方式。
使用basic认证方式的好处就是方便,只要有帐号和密码就行了,但缺点是密码就会被api服务器知道,已经发生了好几起大规模密码重置事件了,很可能就是因为密码被泄露了造成的。
oauth认证方式就是用你的用户名和程序的一些特征值来生成一个key,程序把这个key发送给twitter服务器,twitter服务器对照一下你的数据就知道这个程序是不是你允许的程序,进而判断是否允许这个程序进行某些操作。这样的好处就是这个程序不知道你的密码,而你随时可以设置是否允许这个程序来操作你的账号。
但使用oauth认证有个问题,需要你到官方网站上点击一次allow,就是说必须翻墙一次,这个就对oauth认证方式造成了很大的麻烦。
当然,只要有需求,一些都是可以解决的,很快两个著名的api程序都有了支持oauth方式的版本:twip3.1和GTAP0.3.1。(搭建方法请点击链接)
这两个程序的原理都一样:api和twitter的联系才用oauth的方式,和你的程序的联系则采用basic的方式,也就是说你在程序上用起来和以前没什么两样。
一般来说搭建好程序以后,会有两个有用的地址:分别是api地址和oauth地址,在电脑上翻墙点击oauth地址后就到了twitter官网,如果还没登录就先登录,然后点击allow按钮,这样就允许这个程序操作你的twitter账号了,以后你发的推也会显示为从这个程序而不是你实际所用的客户端发出。allow以后会返回程序的页面,一般会提示你输入一个密码,这个密码叫做api密码,是供你的客户端和这个api程序打交道的,和twitter密码没有任何关系,但考虑到很多综合性的客户端比如Gravity需要使用上传图片等服务,使用api密码就没法传图片了,因此可以将api密码设成和twitter一样,但缺点就是在api程序的后台可以看到你的密码。至于怎样设置,需要自行斟酌。将api地址填写到客户端里面,使用用户名和api密码登陆就行了。
送上搭建在gae上的oauth api一枚:
oauth地址:https://dning1.appspot.com/oauth/twitter/login
api地址: https://dning1.appspot.com/gtap_oauth/
没有评论:
发表评论