gpt4 book ai didi

python - 尝试使用 Twitter API 验证应用程序时出现 403 错误

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:27:01 25 4
gpt4 key购买 nike

我正在尝试使用 application-only authentication 发出 Twitter API 请求但是在发送 HTTP 请求以接收不记名 token 时出现 403 错误。我认为这可能是由于我的请求没有正确形成,但我找不到错误(遵循上面链接的指南)。

我的代码(Python 3.5)如下:

btwitter = twitterkey.encode('utf-8') #utf-8 encodes the key
twitterkey = b64encode(btwitter) #b64 encode key from "consumer:secret" to bytes
twitterkey = bytes.decode(twitterkey) # decodes to string
url = "https://api.twitter.com/oauth2/token"
data = "grant_type=client_credentials"
data = data.encode('utf-8')
headers = {'Authorization' : "Basic "+twitterkey+"", 'Content-Length' : '29','User-Agent':'myapp v1','Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'}
method = 'POST'
request = urllib.request.Request(url,data,headers,method)
response = urllib.request.urlopen(request)

我也不确定我是否正确地对 key 进行了编码。按照 Twitter 的文档,我将字符串编码为字节,然后是 base64。然后我将 base64 转换回一个字符串,这样我就可以将它连接到“Basic”,否则我会得到一个 TypeError。

运行这段代码时,最后一行出现错误,如下所示:

File "main.py", line 69, in <module>
response = urllib.request.urlopen(request)
...
File "<path>", line 589, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 403: Forbidden

编辑:

捕获错误并打印后,我得到以下信息:

b'{"errors":[{"code":99,"message":"Unable to verify your credentials","label":"authenticity_token_error"}]}'

我已经尝试更改 header (添加/删除 Content-Length 和 User-Agent),但我遇到了同样的错误。谢谢。

最佳答案

我最终发现了错误——我从文件中读取 key 时忘记去掉换行符,所以发送到服务器的 key 是错误的。

关于python - 尝试使用 Twitter API 验证应用程序时出现 403 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37274281/

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