python - 无法使用 python-twitter 模块验证 Twitter 凭据
问题描述
我正在尝试使用 python-twitter 最终建立一个 twitter 机器人。
在 IDLE 中,我已经
import twitter
api = twitter.Api(consumer_key=['xxxx '],
consumer_secret=['xxx'],
access_token_key=['x-xxx'],
access_token_secret=['xx'])
然后
api.VerifyCredentials()
这给了我一个很长的回溯错误,如下所示。我究竟做错了什么?
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
api.VerifyCredentials()
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\twitter\api.py", line 4699, in VerifyCredentials
resp = self._RequestUrl(url, 'GET', data)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\twitter\api.py", line 4992, in _RequestUrl
resp = self._session.get(url, auth=self.__auth, timeout=self._timeout, proxies=self.proxies)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 555, in get
return self.request('GET', url, **kwargs)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 528, in request
prep = self.prepare_request(req)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\sessions.py", line 456, in prepare_request
p.prepare(
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 320, in prepare
self.prepare_auth(auth, url)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\requests\models.py", line 551, in prepare_auth
r = auth(self)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\requests_oauthlib\oauth1_auth.py", line 108, in __call__
r.url, headers, _ = self.client.sign(
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\oauthlib\oauth1\rfc5849\__init__.py", line 313, in sign
('oauth_signature', self.get_oauth_signature(request)))
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\oauthlib\oauth1\rfc5849\__init__.py", line 127, in get_oauth_signature
uri, headers, body = self._render(request)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\oauthlib\oauth1\rfc5849\__init__.py", line 209, in _render
headers = parameters.prepare_headers(
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\oauthlib\oauth1\rfc5849\utils.py", line 32, in wrapper
return target(params, *args, **kwargs)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\oauthlib\oauth1\rfc5849\parameters.py", line 59, in prepare_headers
escaped_value = utils.escape(value)
File "C:\Users\redye\AppData\Local\Programs\Python\Python39\lib\site-packages\oauthlib\oauth1\rfc5849\utils.py", line 56, in escape
raise ValueError('Only unicode objects are escapable. ' +
ValueError: Only unicode objects are escapable. Got <generator object to_unicode.<locals>.<genexpr> at 0x0000027FCEE7B510> of type <class 'generator'>.
解决方案
感谢 OctaveL 的帮助。
最后我找到了这个视频:
https://www.youtube.com/watch?v=ewq-91-e2fw
并完全遵循它。我担心 API 密钥和使用者密钥(没有任何区别)究竟有什么区别。按照 VSCode 中的说明,一切正常。
我怀疑我在某处搞砸了一些格式或空格。
推荐阅读
- wpf - 是否可以在 WPF 中的 Trigger.EnterActions 和 Trigger.ExitActions 中使用 setter?
- graphql - Apollo v3 GraphQL 订阅错误:必须提供文档
- c - 我可以使用 gdb 编辑代码行吗?是否也可以在同一个调试会话中保存到实际的源文件和头文件?linux
- .net - 改变当前文化
- javascript - NestJS - 预期未定义为 GraphQL 模式
- c++ - 如何解决这个一个或多个多重定义符号发现错误?
- java - 如何将wsdl文件转换为java文件
- c - C编程语言示例1.9的难点
- mysql - mysql group by 从总和中删除结果
- javascript - “为什么”JavaScript 提升“let”和“const”变量并将它们保持在临时区域中?那么这种行为有什么好处呢?