【问题标题】:How to use "user context access token" that I get from Twitter OAuth 1.0a in my request?如何在我的请求中使用从 Twitter OAuth 1.0a 获得的“用户上下文访问令牌”?
【发布时间】:2020-04-20 19:08:28
【问题描述】:

我已成功 (?) 实施 Twitter 三足身份验证流程以获取用户访问令牌。问题是访问令牌似乎无效......或者我使用错误。我已经能够获得应用程序的访问令牌,它可以访问有限的 Twitter API。我通过在标题上添加“身份验证:承载'访问令牌'”来使用它。但是,当我对用户上下文访问令牌执行相同操作并执行相同请求时,我总是收到错误代码 89 Invalid or expired token。

我获得的访问令牌具有[几个数字]-[一些字母数字字符]的结构。喜欢12345678-asd98f798asdf79asdfa9sdfs9df7a9sdf7。这看起来与https://developer.twitter.com/en/docs/basics/authentication/oauth-1-0a/obtaining-user-access-tokens 的第 3 步中的访问令牌示例类似。

我还注意到那里的示例请求是这样的:

POST statuses/update.json
oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w
oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4

我认为这两个附加参数将被添加到正文而不是标题中。但是,如果我的请求是 GET 请求怎么办?比如请求获取主页时间线,这绝对需要用户上下文访问令牌?

https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home_timeline

从此 API 参考中,该示例仅提供 GET url,而不是如何提供用户上下文访问令牌。请帮忙。感觉解决方法很简单(比如在header上修复),但是看不到。

这是我目前的要求:

curl -X GET \
  'https://api.twitter.com/1.1/users/show.json?screen_name=huffpost' \
  -H 'Authorization: Bearer 12345678-as3d12a3d1a3sd1232ads13asd123as1d23as3d32,Bearer 12345678-as3d12a3d1a3sd1232ads13asd123as1d23as3d32' \

这是结果:

{
    "errors": [
        {
            "code": 89,
            "message": "Invalid or expired token."
        }
    ]
}

【问题讨论】:

    标签: api twitter oauth access-token


    【解决方案1】:

    用户访问令牌需要对包含参数和标头的请求进行签名。

    https://developer.twitter.com/en/docs/basics/authentication/oauth-1-0a/authorizing-a-request

    您可以使用https://github.com/twitter/joauth 之类的库来生成签名。

    对于 Java+OkHttp - 你可以使用这个库https://github.com/yschimke/okurl/blob/master/src/main/kotlin/com/baulsupp/okurl/services/twitter/joauth/Signature.kt#L33

    【讨论】:

    • 是的,我刚刚使用颤振插件解决了这个问题,该插件接收到我必须创建 oauth 的确切数据(签名方法、消费者密钥、消费者秘密、访问令牌、令牌秘密),它将帮助我计算签名哈希并将其与随机数一起嵌入到标头中。当我发现您在上面发布的链接时,我惊呆了,认为我必须手动执行所有这些步骤才能生成 oauth 签名。原来有一个可用的插件。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-07-02
    • 2011-08-13
    • 2011-04-29
    • 2014-06-14
    • 1970-01-01
    • 2016-07-13
    • 2019-09-16
    • 2010-12-14
    相关资源
    最近更新 更多