Как я могу сгенерировать значение oauth_signature в Java или C # для OAuth 1.0? - PullRequest
0 голосов
/ 31 января 2019

Для всех:

Я впервые использую OAuth, и мне нужно использовать Flickr API.В приведенном ими примере они показывают «базовую строку», за которой следует подпись из 28–32 символов.Он находится на этой странице в разделе «Подписывающие запросы» в верхней части страницы:

https://www.flickr.com/services/api/auth.oauth.html

URL-адрес, который они приводят в качестве примера в разделе «Получение токена запроса», когда он вставляется в адресную строку браузера.выдает правильный код ответа.Это:

https://www.flickr.com/services/oauth/request_token
?oauth_nonce=95613465
&oauth_timestamp=1305586162
&oauth_consumer_key=653e7a6ecc1d528c516cc8f92cf98611
&oauth_signature_method=HMAC-SHA1
&oauth_version=1.0
&oauth_signature=7w18YS2bONDPL%2FzgyzP5XTr5af4%3D
&oauth_callback=http%3A%2F%2Fwww.example.com

производит это как ответ в браузере:

oauth_callback_confirmed=true&oauth_token=72157702939465392-776fe14f70421bd4&oauth_token_secret=d66fb595796cdf5a

Я затрудняюсь понять, как успешно сгенерировать "oauth_signature".Вот все, что я понимаю на данный момент:

  1. Это связано с шифрованием HMAC-SHA1.
  2. Похоже, что-то связано с кодировкой UTF-8, но я не совсем понимаю, как.
  3. Кодировка Base64 также где-то фигурирует, но я не понимаю, как.

Я пытался перепроектировать, как была получена их подпись, начинающаяся с "7w18", безуспех, на различных онлайн-парсеров.Все, что я получаю, это намного более длинные строки.

Даже домашняя страница OAuth (https://oauth1.wp -api.org / docs / basics / Signing.html ) признает, что подписывание запросов является одним изсамые сложные части использования платформы.Я наверняка вижу это сейчас, и я знаю, из множества вопросов об этой конкретной проблеме, что я не единственный, кого это смущает.

Я успешно создал учетную запись Flickr.и «Ключ» (довольно длинная шестнадцатеричная строка) и «Секрет» (еще одна шестнадцатеричная строка, длина которой примерно равна половине).

Я хочу сгенерировать код Java и / или C #, чтобы получить URL, который будет работать точно так же, как пример Flickr выше.Кажется, что-то, связанное с шифрованием, - вот где я запутался.

Кто-нибудь знает лучший подход к генерации подписи SHA1 для OAuth?Спасибо !!!

...