Java Scribe库Twitter OAuth1请求令牌401未经授权

时间:2019-11-05 07:14:16

标签: java oauth twitter-oauth scribe

我一直在尝试使用其他Java OAuth库从Twitter API获取请求和访问令牌。最后,我开始使用Scribe作为此问题最稳定的库之一。但是,在获取访问令牌的第一步中,我无法使其与Twitter一起使用:

jQuery

它引发以下异常:

twitterOAuthService = new ServiceBuilder(twitterOauthConsumerKey)
          .apiSecret(twitterOauthConsumerKey).debug().callback(callback).build(
              TwitterApi.instance());
      OAuth1RequestToken requestToken = twitterOAuthService.getRequestToken();

我可以看到Authorization标头设置正确:

Response{code=401, message='Authorization Required', body='null', headers={date=Tue, 05 Nov 2019 07:06:34 GMT, null=HTTP/1.1 401 Authorization Required, server=tsa_l, content-length=64, expires=Tue, 31 Mar 1981 05:00:00 GMT, x-response-time=166, x-frame-options=SAMEORIGIN, www-authenticate=OAuth realm="https://api.twitter.com", x-transaction=00e2c19300b2d1ab, strict-transport-security=max-age=631138519, pragma=no-cache, set-cookie=guest_id=v1%3A157293759473549885; Max-Age=63072000; Expires=Thu, 4 Nov 2021 07:06:34 GMT; Path=/; Domain=.twitter.com, last-modified=Tue, 05 Nov 2019 07:06:34 GMT, x-xss-protection=0, x-content-type-options=nosniff, content-disposition=attachment; filename=json.json, x-connection-hash=badf004485a6d713a29ed3f90de9e981, x-twitter-response-tags=BouncerCompliant, content-type=application/json; charset=utf-8, cache-control=no-cache, no-store, must-revalidate, pre-check=0, post-check=0, status=401 Unauthorized}}

我已经测试了以下建议在不同地方使用的方法:

  • 确保授权标头按字母顺序排序!

  • 确保正确设置时间戳记

  • 确保正确设置消费者密码和消费者密钥

  • 确保正确设置oauth_signature(百分比编码)和call_back的编码

我已经用完了其他所有方案,甚至不确定是否可以将Scribe库用于Twitter。如果有人可以帮助我解决此问题,我将不胜感激。

0 个答案:

没有答案