令牌无效或过期。通过Tweepy申请新令牌?

问题描述 投票:5回答:2
tweepy.error.TweepError: [{u'message': u'Invalid or expired token.', u'code': 89}]

令牌必须硬编码吗?我现在有OAuth和访问令牌硬编码,但令牌似乎每24小时到期一次。如何以编程方式更新令牌?我可以通过Tweepy获得新令牌吗?

我的脚本的目标是在未经我许可的情况下每天过夜。我把它设置为cronjob。我不想做任何手动输入。

我只是在一个帐户上使用API​​,我的帐户。所以我有用户名/密码等。

通常情况下,我通过点击“创建我的访问令牌”获取令牌,然后当我几天后回来查看时,令牌消失了,创建它的按钮又重新出现。

enter image description here

再生并再使用一天后,再次发生了!屏幕截图:http://i.imgur.com/hhDqLnU.png

python twitter tweepy
2个回答
2
投票

不确定您的应用的目标是什么,但要回答您的一些问题 - 关注:

令牌必须硬编码吗?

不,根据您编码的应用程序的性质,您可以在通过webform执行程序时请求此数据,或者在GUI中将文本字段包含在另一个文件中并对其进行加密或导入其所在的文件并使用它。 。

我现在有OAuth和访问令牌硬编码,但令牌似乎每24小时到期一次。如何以编程方式更新令牌?

您无法获得API密钥和消费者密钥,这必须手动完成。这些信息应该是永久性的,基于https://dev.twitter.com/oauth/overview

访问令牌是另一个故事,您可以使用API​​显然请求一个:https://dev.twitter.com/oauth/reference/post/oauth/access_token

POST oauth / request_token允许Consumer应用程序获取OAuth请求令牌以请求用户授权。此方法满足OAuth 1.0身份验证流程的第6.1节。强烈建议您对所有OAuth授权步骤使用HTTPS。使用备注:oauth_nonce仅接受ASCII值

资源网址https://api.twitter.com/oauth/request_token

关于访问令牌到期:

访问令牌持续多长时间?我们目前不会过期访问令牌。如果用户明确拒绝其设置中的应用程序或Twitter管理员暂停您的应用程序,则您的访问令牌将无效。如果您的申请被暂停,您的申请页面上会有一条说明已被暂停的说明。按照推特:

如果我的访问令牌变得无效,我该怎么办?您应该计划用户的访问令牌可能随时变为无效,并且您需要在该用户的情况下重新授权该用户。确保您优雅地处理这种情况对于获得高质量的用户体验至关重要。

根据twitters文件https://dev.twitter.com/oauth/application-only

API请求包含无效的承载令牌使用不正确或已撤销的承载令牌来发出API请求将导致:

HTTP / 1.1 401 Unauthorized Content-Type:application / json; charset = utf-8内容长度:61 ...

{“errors”:[{“message”:“令牌无效或过期”,“代码”:89}]}

也许这需要在twitters方面解决?我建议直接联系他们qazxsw poi


0
投票

您可以使用以下代码获取访问令牌。我使用configparser来存储我的配置。一旦你有了令牌,它就不会过期。

https://dev.twitter.com/solutions/customer-service
© www.soinside.com 2019 - 2024. All rights reserved.