我正在尝试为通过REST API从JIRA服务器检索数据的应用程序实现OAuth。我能够构造和使用授权URL,并获得一条消息,指示我在使用应用程序时已经成功授权了我的应用程序。但是,当我随后尝试请求访问令牌时,总是得到内容为“ oauth_problem = token_rejected”的响应代码401。
我正在使用Python 3,并在jirashell中拆解了“ oauthdance”函数中的代码,以查看发生故障的位置。我没有使用回调uri,因此我将'oob'指定为回调,并且在授权应用程序后可以在浏览器中看到验证字符串。
oauth = OAuth1(consumer_key,
signature_method=SIGNATURE_RSA, rsa_key=key_cert_data, resource_owner_key=request_token, resource_owner_secret=request_token_secret, verifier=<string copied from browser>
)
r = requests.post(
server + '/plugins/servlet/oauth/access-token', verify=verify, auth=oauth)
我希望这段代码可以检索访问令牌,但是它将返回401响应。 request_token和request_token_secret似乎是有效的,并且是通过request-token servlet检索的。
答案 0 :(得分:0)
我在这里找到了答案:https://community.developer.atlassian.com/t/java-oauth-example-does-not-work/3779/2
与OAuth一起使用的使用者密钥区分大小写。我将其更改为与管理员在JIRA中输入的值完全匹配,并获得了访问令牌。