官方Twitter文档摘录:
As of June 30, 2010, basic auth (directly passing a username and password for every API request) will no longer be supported. Web applications are encouraged to use full OAuth to authenticate users and act on their behalf.
到6月30日,Twitter将停止直接使用用户和密码认证。Web应用将使用OAuth认证。
Twitter官方文档点 这里
1, 首先到Twitter中注册一个自己的Twitter应用,注册地址:http://dev.twitter.com/apps/new,获得Consumer Key 和 Consumer secret的值;
2, 利用上面的Consumer Key 和 Consumer secret获得一个request token;命令: http://api.twitter.com/oauth/request_token
3, 对用户认证 命令: http://api.twitter.com/oauth/authorize?oauth_token =....
4, 第3步得到oauth_verifier的值;
5, 将request token换为access token;命令: https://api.twitter.com/oauth/access_token
6, 利用这个access token就可以利用twitter api添加、删除你的tweet了。
待续
学习了两天,大致明白了。
主要是用curl的一些函数。
首先,用curl_init()初始化一个句柄;
然后,用curl_setopt()把参数、http或者https链接路径附给这个句柄;
接着,用curl_exec()执行这个句柄,返回一些数据;
之后,用curl_getinfo()就可以把下面用到的参数oauth_token取出来,相当于图中的request_token;
用一个链接跟上这个参数就可以得到oauth_verifier;这样一个一个取出来图上那些参数。
我开始从网上下载的程序,运行,显示“到OAuth认证”按钮,点击按钮,显示链接不上twitter,调试了一阵,显示callback只支持“oob”,就把callback的值该为“oob”,运行,可以链接到twitter,点击“Allow”给了个pin号,不能自动连接到callback的文件。
后来发现是我注册的twitter应用一个属性选的是client,而不是browser,又注册了一个browser的,得到一组新的key,secret,输进去,程序运行正常了。
不过,我又发现程序直接进入我的twitter帐户,和我原来想的不一样。原来OAuth认证需要登录的用户自己有个twitter api应用,用自己的api那组key和secret登录,每次登录都要到twitter上验证一下。
订正一下(20100606):登录后直接进入我个人帐户是因为我原来就是登录状态,否则,程序会弹出一个twiiter的窗口让你输入用户名和密码,提醒你是否同意通过某个twitter api应用访问你的twitter帐户。详细见楼下。
下一步是了解一下如何用代理来实现这个认证。