【发布时间】: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
-
我将您的确切代码与我的令牌一起使用,它运行良好。尝试重新生成访问令牌。