twitter 开发者 api oauth 提供了错误的身份验证数据,但一切都很好

Posted

技术标签:

【中文标题】twitter 开发者 api oauth 提供了错误的身份验证数据,但一切都很好【英文标题】:twitter developer api oauth gives bad authentication data, but all good 【发布时间】:2020-12-03 22:39:11 【问题描述】:

试图让 Twitter 验证我对新 API 的获取请求,以获取围绕特定主题的最新推文。我在身份验证方面遇到了一些问题,我似乎无法确定。我使用客户端密钥和客户端密码对我的应用程序进行了身份验证,然后对用户进行了身份验证并接受了该应用程序可以读取和写入权限。使用用户身份验证令牌和秘密,我尝试进行身份验证以从新的 api 获取数据,但遇到了错误的身份验证错误。

你能看出我做错了什么吗?:

curl --request GET --url 'https://api.twitter.com/2/tweets/search/recent?query=python' --header \

'authorization: OAuth \
oauth_consumer_key="i_put_api_key_here",\
oauth_consumer_secret="i_put_api_secret_here",\
oauth_token="i_put_user_token_after_accepting_app_can_make_changes",\
oauth_token_secret="i_put_oauth_token_secret", \
oauth_signature_method="HMAC-SHA1",\
oauth_timestamp="",\
oauth_version="1.0"'

return data is:
"title":"Unauthorized","type":"about:blank","status":401,"detail":"Unauthorized"

我指的是这个文件:https://developer.twitter.com/en/docs/authentication/oauth-1-0a

我很确定我正确地提供了它需要的所有数据。

【问题讨论】:

【参考方案1】:

Python 拯救了这一天。您可以从应用程序的 Twitter Api 仪表板请求不记名令牌。然后像这样使用 OAuth 2.0,

def get_data(url):
    headers = 'Authorization': "Bearer " + str(TWITTER_BEARER_TOKEN) 
    response = requests.get(url, headers=headers)
    response_data = response.json()
    return response_data

get_data('https://api.twitter.com/2/tweets/search/recent?query="Python";max_results=10')
Out[20]: 
'data': ['id': '1294146621652045826',
   'text': 'RT @jacoblawherlin: @Taco_Farmer1 Maybe this is why Python is so popular for data science but not software dev (in addition to performance)…',

【讨论】:

以上是关于twitter 开发者 api oauth 提供了错误的身份验证数据,但一切都很好的主要内容,如果未能解决你的问题,请参考以下文章

Twitter OAuth

Twitter API:Wordpress 插件的 Oauth URL?

Twitter oAuth callbackUrl - 本地主机开发

通过API设置Twitter状态(不带oAuth)

Twitter OAuth API 超时(Nginx 还是 Twitter?)

OAuth机制