oauth - twitter/verify_credentials 是什么样的?

标签 oauth twitter

所以,我只需要检索用户基本信息(/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/

相关文章:

Android Tumblr Oauth 路标 401

asp.net-web-api - 使用多种授权方案(HMAC 和 OATH)

ios - 推特登录异常 flutter

javascript - 嵌入式推文有时会在不同的浏览器上失去边界

database-design - 推荐的 OAuth Provider 数据库结构

openid - OAuth? ,OpenID?都不行我的网站应该支持哪一个?

java - 使用 OAuthTutorialClient-1.0.jar 请求 token 时 Oauth Jira 身份验证客户端问题

spring - 重写 Spring-Social ConnectController 并添加拦截器

python - 使用 Tweepy 将 Python mysql.connector 中的纬度和经度插入 MySQL

python - 这是从搜索中过滤转发的好方法吗?