Получение "Не удалось аутентифицироваться с OAuth."из твиттера при попытке постить - PullRequest
6 голосов
/ 29 июля 2011

Я успешно смог получить токен доступа через процесс OAuth.

Однако, когда я пытаюсь запустить POST для конечной точки /statuses/update.json, я получаю сообщение «Не удалось выполнить аутентификацию с помощью OAuth».

Я подписываюсь с токеном, который я получил после аутентификации с помощью секрета моего потребителя, я не понимаю, что еще может быть.

Форумы Твиттера тоже не помогли.

Любые советы будут с благодарностью.

1 Ответ

0 голосов
/ 10 мая 2014

Выполнение аутентифицированных вызовов в Twitter может быть затруднено.

Убедитесь, что параметры в вашей базовой строке подписи упорядочены в алфавитном порядке.

Примите это:

oauth_consumer_key={consumerkey}&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_token={token}&oauth_version=1.0&status={tweet text}

заполните значения, закодируйте их в Base64, а затем сложите так:

POST&{base64 encoded url}&{base64 encoded base string}

это будет строка, которую нужно подписать (без скобок).(URL в этом случае будет https://api.twitter.com/1.1/statuses/update.json)

Ключ подписи должен быть построен следующим образом:

{consumer secret}&{token secret}

Подпись - это хэш HMACSHA1, который затем кодируется в base64.

Затем вам нужно поместить это в заголовок авторизации:

OAuth oauth_consumer_key="{consumer key}",oauth_nonce="{nonce}",oauth_signature="{signature}",oauth_signature_method="HMAC-SHA1",oauth_timestamp="{timestamp}",oauth_token="{token}",oauth_version="1.0"

И, наконец, поставить status=your tweet text в качестве опубликованных данных в вашем запросе.

Надеюсь, это поможет.

...