所以,我只需要检索用户基本信息(/verify_credentials(twitter),/me(facebook),所以我现在尝试滚动我自己的代码
在第二次尝试时在 Facebook 上得到了它,因为我需要的只是对 graph.facebook.com/me + access_token 的请求
但现在尝试用 twitter 来做这件事非常痛苦,我只是无法通过文档弄清楚它,所以,请问,对 twitter api/verify_credentials 的请求是什么样的?
参数是什么? Twitter api,你很烂吗?
最佳答案
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 是您的访问 token
- oauth_timestamp 是当前 UNIX 时间戳(UTC 格式)
- oauth_version 始终为 1.0
- oauth_signature 是您生成的签名(Twitter 将通过复制来验证)
您可以通过构造由以下部分组成的签名基本字符串来生成 oauth_signature 参数的值。
- 大写的 HTTP 方法(在本例中为
GET
) - 与号
&
- URL 编码的基本 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")
然后使用消费者 key 和访问 token key 对生成的基本字符串进行签名。这就是全部了:)
但是在向 API 发出任何请求之前,您当然需要实际获取访问 token 。一旦您掌握了 oAuth 1.0 流程和签名过程。你会回家的。 Twitter 的文档在解释该过程方面做得很好,但它却让您费解很多。不过还是值得的。
关于oauth - twitter/verify_credentials 是什么样的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6378573/