【问题标题】:TwitterAPI "Invalid or expired token."TwitterAPI“无效或过期的令牌。”
【发布时间】:2017-09-24 10:38:27
【问题描述】:

我正在用 python 编写一个简单的脚本来读取 Twitter 列表的成员。

代码:

TW_CONSUMER_KEY = '<consumer key>'
TW_CONSUMER_SECRET = '<consumer secret>'
TW_ACCESS_TOKEN = '<access token>'
TW_ACCESS_TOKEN_SECRET = '<token secret>'

twapi = TwitterAPI(TW_CONSUMER_KEY, TW_CONSUMER_SECRET, TW_ACCESS_TOKEN, TW_ACCESS_TOKEN_SECRET)

def list_members(slug, owner_screen_name, limit=1e10):
    """See https://dev.twitter.com/rest/reference/get/lists/members"""
    cursor = -1
    members = []
    try:
        response = twapi.request('lists/members', {'slug': slug, 'owner_screen_name': owner_screen_name, 'cursor': cursor, 'count': 5000})
        if response.status_code in [88, 130, 420, 429]:  # rate limit
            sys.stderr.write('Error for %s/%s: %s\nSleeping for 5 minutes...\n' % (owner_screen_name, slug, response.text))
            time.sleep(301)
        elif response.status_code != 200:
            sys.stderr.write('Skipping bad query: %s\n' % response.text)
            return members
        else:
            items = [r['screen_name'] for r in response if 'screen_name' in r]
            return items
    except Exception as e:
        sys.stderr.write('Error: %s\nskipping...\n' % e)
        return members
    return members

此代码引发错误:

Skipping bad query: {"errors":[{"code":89,"message":"Invalid or expired token."}]}

我已经更新了令牌和使用者密钥,即使文档说它们不会过期,但无济于事。

可以解决这个问题吗? TwitterAPI 调用是否正确?

【问题讨论】:

  • 您是否使用 twitter 登录以获取访问令牌和访问令牌秘密?您是否使用了对 /oauth/access_token 的响应中的访问令牌,而不是来自请求的访问令牌? dev.twitter.com/web/sign-in/implementing
  • 我将您的确切代码与我的令牌一起使用,它运行良好。尝试重新生成访问令牌。

标签: python twitter oauth-2.0


【解决方案1】:

您的代码没问题,但您应该在 Twitter 上管理您的应用并将权限更改为“读取、写入和直接消息”。

【讨论】:

    猜你喜欢
    • 2020-05-24
    • 2016-05-24
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2015-04-23
    • 2014-05-15
    • 1970-01-01
    • 2013-07-12
    相关资源
    最近更新 更多