【发布时间】: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