首页 文章

无法通过OAuth对Bitbucket API进行经过身份验证的调用

提问于
浏览
3

我正在尝试使用Oauth身份验证对Bitbucket REST API进行身份验证调用 . 我已成功检索到oauth_token和oauth_token_secret(尽管它们与request_token和request_token_secret相同,这看起来很奇怪但不在规范之外) . 当我对另一个 endpoints 进行API调用时,我得到一个401(未经过身份验证) . 我尝试使用头部身份验证和/或将oauth_token和oauth_token_secret作为HTTP params传递给理智的结果 .

这是代码:

account_name_url = 'https://api.bitbucket.org/1.0/user'

feedback_oauth_hook = OAuthHook(
    access_token='REDACTED',
    access_token_secret='ALSO_REDACTED',
    consumer_key=CLIENT_ID,
    consumer_secret=CLIENT_SECRET,
    header_auth=True
    )

params = {
    'access_token': auth_tokens['access_token'],
    'access_token_secret': auth_tokens['access_secret']
    }

response = requests.get(account_name_url, data=params, hooks={'pre_request': feedback_oauth_hook})

1 回答

  • 0
    import oauth2  #pip install oauth2
    accessToken = oauth2.Token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
    consumer_key = YOUR_COMSUMER_KEY
    consumer_secret = YOUR_CONSUMER_SECRET
    consumer = oauth2.Consumer(consumer_key, consumer_secret)
    client = oauth2.Client(consumer, accessToken)
    api_url = "https://api.bitbucket.org/1.0/user"
    resp, content = client.request(api_url, "GET")
    print resp, content
    

    上面的python代码适合我 .

    我打印请求信息,注意它包含 oauth_version=1.0 这是必需的 . 我尝试删除它,然后返回401 . 我认为BitBucket应该记录下来 .

相关问题