【问题标题】:Trouble making authenticated calls to Bitbucket API via OAuth通过 OAuth 对 Bitbucket API 进行经过身份验证的调用时遇到问题
【发布时间】:2012-11-08 23:46:18
【问题描述】:

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

代码如下:

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})

【问题讨论】:

    标签: oauth bitbucket-api


    【解决方案1】:
    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 应该记录这一点。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 2018-08-10
      相关资源
      最近更新 更多