Twitter, JavaScript и OAuth: не удалось проверить подпись и токен oauth - PullRequest
1 голос
/ 08 июня 2010

Я пытаюсь реализовать OAuth с использованием JavaScript, но когда я делаю свой запрос к http://api.twitter.com/oauth/request_token, я получаю в ответе вышеупомянутое сообщение («не удалось проверить подпись и токен oauth»).

Насколько я могу судить, я включаю все правильные параметры, оба в кодировку базы сигнатур:

basestring: (ключ безопасности удален для безопасности)

POST & HTTP% 3A% 2F% 2Ftwitter.com% 2Foauth% 2Frequest_token% 26oauth_callback% 3Doob% 26oauth_consumer_key% 3D11111111111111111111112222222222222% 26oauth_nonce% 3DO3cHsSXrfnzT% 26oauth_signature_method% 3DHMAC-SHA1% 26oauth_timestamp% 3D1275928008% 26oauth_version% 3D1.0 * * * 1 010 1011*

секрет потребителя: (удалено для безопасности)

11111111111111111111112222222222222 &

Подпись:

R3eHMuQ04F37 + xPJSIsoo0aMzc23

сообщение данных (ключ потребителя удалены для безопасности)

oauth_callback = OOB & oauth_consumer_key = 11111111111111111111112222222222222 & oauth_signature_method = HMAC-SHA1 и oauth_signature = pjDh8jkp89ThBtzzB9dQmxQfcg & oauth_timestamp = 1275928413 & oauth_nonce = qyq3Jhn8rtTZ & oauth_version = 1,0

иЯ проверилчасы на моем устройстве правильные, так как это единственный реальный результат, который я могу найти для этой проблемы :( Одноразовый номер уникален и генерируется при каждом запуске ... К сожалению, я не знаю, где искать сейчас.Я не вижу ничего очевидного.Я переписал весь запрос дважды - один раз с использованием библиотеки oauth.js и один раз полностью вручную, но в обоих случаях он завершается с той же ошибкой!

Есть предложения?

Ура

Ответы [ 2 ]

0 голосов
/ 26 сентября 2016

Ваша подпись выглядит неправильно, она всегда должна заканчиваться на =. Вот пример правильного: "YEBbMFDYmp6DvZ3qW1aCx8q7kTc =". Ваша базовая строка выглядит правильно, поэтому я думаю, что вы допустили ошибку, указав ключ подписи.

В C # вот как я построил свой ключ подписи,

string signatureKey = Uri.EscapeDataString (consumer_secret) + "&";

var hmacsha1 = новый HMACSHA1 (новый ASCIIEncoding (). GetBytes (signatureKey));

string signatureString = Convert.ToBase64String ( hmacsha1.ComputeHash ( новый ASCIIEncoding (). GetBytes (signatureBaseString)));

string oauth_signature = signatureString;

Подробнее об этом процессе: https://www.dinochiesa.net/?p=17

0 голосов
/ 10 июня 2012

Возможно, так же, как этот вопрос - что связано с обсуждением в твиттере: очевидно, на стороне клиента JavaScript с oob не допускается!?!?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...