gpt4 book ai didi

python - OAuth 访问 token 请求(Twitter API)和 oauth_verifier 字段

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:56 30 4
gpt4 key购买 nike

因此,在 天努力从 https://api.twitter.com/oauth/request_token 获取 request_token 之后,我终于成功生成了一个 Base签名字符串和 HMAC-SHA1 签名,并从 https://api.twitter.com/oauth/request_token 接收到 oauth_token

现在,我对下一步有点困惑。我的最终目标是能够以编程方式简单地拉取推文。

我知道我需要从 https://api.twitter.com/oauth/access_token 获取访问 token ,但我不确定如何继续。我知道我需要将 /oauth/request_token 调用收到的 oauth_token 值发送到 /oauth/access_token,但我在概念上被 Authorization header 中的 oauth_verifier 字段搞糊涂了。

关于此演讲的大多数教程或文档都是将用户的浏览器重定向到登录页面,然后使用该页面为 oauth_verifier。但就我而言,没有浏览器:我只是用 Python 编写一个自动化守护进程,它需要定期提取某些推文。所以没有浏览器,也没有涉及人类“用户”。那么oauth_verifier字段如何应用到这里呢?

最佳答案

您要找的是application-only authentication .

这是 Python 3.3 中的示例,说明如何使用 requests 获取可用于仅应用程序请求的不记名 token 。打包并假设值 consumer_keyconsumer_secret 分别保存您的 Twitter API 消费者 key 和 secret :

import base64
import requests

# get bearer token for application only requests
bearer_token_credentials = base64.urlsafe_b64encode(
'{}:{}'.format(consumer_key, consumer_secret).encode('ascii')).decode('ascii')
url = 'https://api.twitter.com/oauth2/token'
headers = {
'Authorization': 'Basic {}'.format(bearer_token_credentials),
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
}
data = 'grant_type=client_credentials'
response = requests.post(url, headers=headers, data=data)
response_data = response.json()
if response_data['token_type'] == 'bearer':
bearer_token = response_data['access_token']
else:
raise RuntimeError('unexpected token type: {}'.format(response_data['token_type']))

然后可以使用不记名 token 为您的请求创建授权 header ,如下所示:

headers = {
'Authorization': 'Bearer {}'.format(bearer_token),
'Accept-Encoding': 'gzip',
}

关于python - OAuth 访问 token 请求(Twitter API)和 oauth_verifier 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651846/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com