Java Scribe библиотека Twitter OAuth1 запрос токена 401 не авторизован - PullRequest
0 голосов
/ 05 ноября 2019

Я пытался использовать разные библиотеки Java OAuth для получения токена запроса и доступа из API Twitter. Наконец, я стал использовать Scribe в качестве одной из самых стабильных библиотек в этом отношении. Однако я не смог заставить это работать с Twitter на первом шаге, который получает токен доступа:

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

Выдает следующее исключение:

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

Iвидно, что заголовок авторизации установлен правильно:

Authorization -> OAuth oauth_callback="http%253A%252F%252F127.0.0.1%253A3000%252Fsettings", oauth_consumer_key="8hupaLbXA2s792EzU8DIE6K", oauth_nonce="2929183554", oauth_signature="s%2BRMAninTESJqJg92BuEA8h3E%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1572936780", oauth_version="1.0"

Я проверил следующие подходы, как они предлагались в разных местах:

  • Убедитесь, что заголовок авторизации отсортированв алфавитном порядке!

  • Убедитесь, что метка времени установлена ​​правильно

  • Убедитесь, что секретный ключ пользователя и ключ пользователя установлены правильно

  • Убедитесь, что кодировка oauth_signature (процентное кодирование) и call_back установлена ​​правильно

У меня закончились любые другие сценарии, и я даже не уверен, смогу ли яиспользуйте библиотеку Scribe для Twitter. Буду признателен, если кто-нибудь поможет мне решить эту проблему.

...