twitter / verify_credentials是什么样的?

时间:2011-06-16 21:03:52

标签: oauth twitter

所以,我只需要检索用户基本信息(/ verify_credentials(twitter),/ me(facebook),所以我现在尝试滚动自己的代码

第二次尝试在facebook上获取它,因为我需要的是对graph.facebook.com/me + access_token的请求

但是现在尝试用twitter做这件事非常痛苦,我只是无法通过文档来解决这个问题,所以请问twitter api / verify_credentials的请求是什么样的?

什么是params? twitter api,你好吗?

1 个答案:

答案 0 :(得分:28)

Facebook使用的是oAuth 2.0,它比oAuth 1.0(twitter使用的)更容易实现。

verify_credentials API的示例请求可能如下所示:

https://api.twitter.com/1/account/verify_credentials.json?oauth_consumer_key=XXX&oauth_nonce=XXX&oauth_signature_method=HMAC-SHA1&oauth_token=XXX&oauth_timestamp=123456789&oauth_version=1.0&oauth_signature=YYY

  • oauth_consumer_key是自我解释
  • oauth_nonce几乎可以是随机字符串
  • oauth_signature_method始终为HMAC-SHA1
  • oauth_token是您的访问令牌
  • oauth_timestamp是当前的UNIX时间戳(以UTC为单位)
  • oauth_version始终为1.0
  • oauth_signature是您生成的签名(Twitter将通过复制进行验证)

通过构造由以下部分组成的签名基本字符串来生成oauth_signature参数的值。

  • 大写的HTTP方法(在本例中为GET
  • &符号&
  • 网址编码的基本URI(从https到包括verify_credentials.json在内的所有内容)
  • &符号&
  • 按字母顺序排列所有请求参数,url编码。 (虽然oauth_signature不应包括在内)

Signing requests in Twitters documentation部分中的伪代码优雅地描述了签名过程:

httpMethod + "&" +
    url_encode(  base_uri ) + "&" +
    sorted_query_params.each  { | k, v |
        url_encode ( k ) + "%3D" +
        url_encode ( v )
    }.join("%26")

然后使用使用者密钥和访问令牌密钥对生成的基本字符串进行签名。这就是它的全部:)

但在向API发出任何请求之前,您当然需要实际获取访问令牌。一旦掌握了oAuth 1.0流程和签名过程。你会回家的。 Twitter的文档在解释这个过程方面做得非常好,但它是一个很好的解决方案。值得拥有。