twitter api问题

时间:2010-10-12 16:15:55

标签: api twitter oauth twitter-oauth

我正在我的网站上集成“使用Twitter帐户登录”功能。

所以,我发送请求到https://twitter.com/oauth/request_token,获取令牌,重定向到https://twitter.com/oauth/authenticate?oauth_token =%oauth_token%

然后我收到了oauth_token和oauth_verifier

的回电

这很好。

但是我需要调用https://api.twitter.com/1/account/verify_credentials.json来获取授权的客户端详细信息

我发送:

GET https ://api.twitter.com/1/account/verify_credentials.json
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: q=0.8,en-us;q=0.5,en;q=0.3
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
X-Auth-Service-Provider: https ://api.twitter.com/1/account/verify_credentials.json
X-Verify-Credentials-Authorization: OAuth realm="http://api.twitter.com/", oauth_signature="acYFjEgUrTcyb4FMBoJF8MlwZGw%3D", oauth_timestamp="1286899670", oauth_consumer_key="%CONSUMER_KEY%", oauth_nonce="268310006", oauth_token="%oauth_token%", oauth_version="1.0", oauth_signature_method="HMAC-SHA1"

%oauth_token% - token got when twitter redirects me back the cleint
%CONSUMER_KEY% - my twitter account's consumer key

回来

HTTP/1.1 401 Unauthorized
Cache-Control: no-cache, max-age=300
Connection: close
Date: Tue, 12 Oct 2010 16:07:45 GMT
Server: hi
Vary: Accept-Encoding
WWW-Authenticate: Basic realm="Twitter API"

{"error":"Could not authenticate you.","request":"/1/account/verify_credentials.json"}

任何人都可以告诉我这里有什么问题吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

收到回调后,您必须向POST oauth/access_token发出请求以交换临时request_token以获取与该用户关联的永久access_token。收到access_token后,您可以执行GET account/verify_credentials请求。

答案 1 :(得分:0)

这是一个很好的流程图,解释了完整OAuth流程的工作原理。

Flow Chart

听起来你通过身份验证的方式只有三分之二。现在,您需要将授权请求令牌交换为永久访问令牌。

答案 2 :(得分:0)

您正在使用标头来传递参数(X-Verify-Credentials-Authorization),而应使用 GET方法。如果您使用的是php Zend框架的OAuth组件,那么它应该看起来像

$client->setMethod(Zend_Http_Client::GET);