Twitter REST v1 API - Tweepy -Python - 身份验证

Twitter REST v1 API - Tweepy -Python - Authentication

我有一个带有 Tweepy 的简单 Python 应用程序可以将图像上传到 Twitter。 此功能仅适用于 V1 API。 可以使用独立应用程序或提升权限访问 V1 API。

我都做了,但我经常收到 403 禁止错误。

这是我的简单代码:

client_v1 = tweepy.API(auth=auth)
upload_file_media = client_v1.media_upload(
    filename="my_image.jpg"
)

这个,我尝试了所有 3 种可能的身份验证方法:

auth = tweepy.OAuth2AppHandler
auth = tweepy.OAuth2BearerHandler
auth = tweepy.OAuth1UserHandler

None 他们成功了。

这是堆栈跟踪:

  File "/opt/anaconda3/envs/tf/lib/python3.7/site-packages/tweepy/api.py", line 3411, in media_upload
    additional_owners=additional_owners, **kwargs
  File "/opt/anaconda3/envs/tf/lib/python3.7/site-packages/tweepy/api.py", line 46, in wrapper
    return method(*args, **kwargs)
  File "/opt/anaconda3/envs/tf/lib/python3.7/site-packages/tweepy/api.py", line 3455, in simple_upload
    upload_api=True, **kwargs
  File "/opt/anaconda3/envs/tf/lib/python3.7/site-packages/tweepy/api.py", line 259, in request
    raise Forbidden(resp)
tweepy.errors.Forbidden: 403 Forbidden

知道可能是什么原因吗?

非常感谢。

如果您有一个新的开发者帐户,那么您将需要提升访问权限才能访问 v1.1 API。您需要将 OAuth1UserHandler 与 v1.1 媒体上传一起使用 API 才能为授权用户上传媒体。

我想我找到了一种方法。 有一个设置“用户身份验证设置”。去那里激活 Oauthv1。 它正在询问一些回调 URL 和网站 URL。如果您有命令行或批处理作业,则这些都是不必要的。 只需使用 127.0.0.1 和本地主机。然后就可以了。 奇怪的设置。