【问题标题】:How to get the "oauth_token" for the authorize url in PIN-based OAuth flow for Twitter API?如何在 Twitter API 的基于 PIN 的 OAuth 流程中获取授权 URL 的“oauth_token”?
【发布时间】:2023-03-08 09:38:01
【问题描述】:

逻辑在我看来是循环的(尽管我知道我遗漏了一些东西)

我想用这个:

https://dev.twitter.com/docs/auth/pin-based-authorization

但为了使 URL 发送给用户以获取 pin,您需要一个“oauth_token”:

https://dev.twitter.com/docs/api/1/get/oauth/authorize

但要获得“oauth_token”,您需要:

https://dev.twitter.com/docs/api/1/post/oauth/request_token

但在底部显示它需要一个“oauth_signature”

嗯,“oauth_signature”需要一个“oauth_token” (https://dev.twitter.com/docs/auth/creating-signature)你没有,所以不可能得到一个“oauth_token”,因为你需要一个才能得到一个。

我在这里缺少什么?我主要只是想知道如何获取基于 PIN 的授权的初始 url,所以我需要第一个“oauth_token”。

【问题讨论】:

    标签: api twitter


    【解决方案1】:

    有两种不同类型的 oauth 令牌 - 我们称它们为请求令牌和普通令牌。请求令牌用于身份验证,一旦身份验证完成,您将获得正常的 oauth 令牌。

    调用oauth/request_token 会为您生成一个请求令牌,这是一个用于实际身份验证的临时令牌。完成后,您就拥有了正常的令牌。

    【讨论】:

    • 但是看,dev.twitter.com/docs/api/1/post/oauth/request_token,它需要一个签名,而这又需要一个 "oauth_token" 。 dev.twitter.com/docs/auth/creating-signature
    • 是的,request_token 需要 oauth_signature,但它不需要 oauth_token。它只需要您识别应用程序 (oauth_consumer_token),而不是用户。
    • 我完全理解:当我为请求令牌进行签名时,我不需要包含 oauth_token?但是在这里(dev.twitter.com/docs/auth/creating-signature)它说“在 HTTP 请求中,参数是 URL 编码的,但是你应该收集原始值。除了请求参数,每个 oauth_* 参数都需要包含在签名中,所以收集那些也是。”
    • 查看页面底部的 dev.twitter.com/docs/api/1/post/oauth/request_token 以获取示例 OAuth 签名过程。您会看到没有包含 oauth_token,并且签名密钥只是“consumersecret&”而不是“consumersecret&secret”。签署请求时,您只需要包含您实际发送到服务器的参数。如果您不向服务器发送 oauth_token,则无需将其包含在签名中。
    • 查看需要包含的标头:它包含一个需要 oauth_token 的签名
    【解决方案2】:

    https://apps.twitter.com/ 和您的代码中设置回调 URL .它对我有用。

    oauthCallback:@"myapp://twitter_access_tokens/"
    

    【讨论】:

      猜你喜欢
      • 2015-03-31
      • 1970-01-01
      • 2015-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-16
      • 2013-06-10
      • 2020-05-17
      相关资源
      最近更新 更多