【问题标题】:"Invalid or expired token" error when trying to access Twitter API尝试访问 Twitter API 时出现“无效或过期的令牌”错误
【发布时间】:2016-09-21 19:39:18
【问题描述】:

我正在尝试使用 Application-only authorization 访问 Twitter API。我可以正确获取 Bearer 令牌(至少我是这么认为的!),但是当我尝试使用该令牌进行 API 调用时,我总是收到 Invalid or expired token 错误。

twitter_consumer_key = b"<MY_APP_CONSUMER_KEY>"
twitter_consumer_secret = b"<MY_APP_SECRET_KEY>"
twitter_keys = base64.standard_b64encode(twitter_consumer_key + b':' + twitter_consumer_secret)

content = {'grant_type': 'client_credentials'}
post_headers = {
    b'Authorization': b'Basic ' + twitter_keys,
    b'Content-Type': b'application/x-www-form-urlencoded;charset=UTF-8'
}

twitter_bearer = requests.post('https://api.twitter.com/oauth2/token', headers=post_headers, data=content).json()['access_token']
twitter_headers = {
    b'Authorization': b'Bearer ' + base64.b64encode(twitter_bearer.encode('utf-8')),
}
response = requests.get("https://api.twitter.com/1.1/users/show.json?screen_name=itechbrij",
                                 headers=twitter_headers).text

print(twitter_followers){"errors":[{"code":89,"message":"Invalid or expired token."}]}

感谢任何帮助。谢谢

【问题讨论】:

    标签: python twitter oauth twitter-oauth


    【解决方案1】:

    BOLD试试这些变化:

    twitter_keys = base64.standard_b64encode((twitter_consumer_key + ':' + twitter_consumer_secret).encode('utf8'))

    post_headers = { 'User-Agent': '您的用户代理字符串', '授权': '基本' + twitter_keys**.decode('utf8')**, '内容类型': 'application/x-www-form-urlencoded;charset=UTF-8' }

    twitter_bearer = requests.post( 'https://api.twitter.com/oauth2/token', 标头=post_headers, 参数=content).json()['access_token']

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 2021-11-04
      • 2016-05-24
      • 2012-10-27
      • 1970-01-01
      • 2013-07-12
      相关资源
      最近更新 更多