Twitter API + OAuth: не могу отправлять обновления статуса, получаю 401 - PullRequest
12 голосов
/ 09 июня 2009

Я пытаюсь использовать Twitter API и OAuth для отправки обновлений статуса (новые твиты). Я использую пример кода Шеннона Уитли .NET http://www.voiceoftech.com/swhitley/?p=681 (как рекомендовано в документации по API Twitter). Я могу читать (GET), используя OAuth, но когда я пытаюсь отправить обновление статуса через http: //twitter.com/statuses/update.xml (используя POST), он возвращает 401 со следующим XML:

<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <request>/statuses/update.xml</request>
  <error>Read-only application cannot POST</error>
</hash>

Клянусь, я настроил свое приложение для использования чтения и записи, на странице авторизации в Twitter (http: //twitter.com/oauth/authorize) даже написано «Приложение TweeVerbs.com (Development) от хотелось бы иметь возможность доступа и обновления ваших данных в Twitter. "

Тем не менее, он по-прежнему говорит "Приложение только для чтения не может POST". WTF!?

Я погуглил это сообщение об ошибке, пока не стал синим на лице. Я нашел где-то, что сказано добавить параметр строки запроса oauth_access_type = write к URL-адресу перенаправления, который идет на страницу авторизации Twitter, которую я сделал, но он все равно дает мне 401.


Если это поможет, вот данные, которые отправляются обратно и в-четвертых, согласно рабочему процессу OAuth:

Запрос авторизации токена:

HTTP: //twitter.com/oauth/request_token oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q & oauth_nonce = 2790042 & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1244567068 & oauth_version = 1,0 & oauth_signature = KzxcXN% 2bQ0AJoAJ% 2flQfzs8SLjC% 2fQ% 3d

Сгенерированный URL перенаправления авторизации:

http: //twitter.com/oauth/authorize? Oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio & oauth_access_type = write

Авторизация Экранное сообщение: "Приложение TweeVerbs.com (Development) by хотело бы иметь возможность доступа и обновления ваших данных в Twitter. Это приложение планирует использовать Twitter для входа в систему. будущее. Выйдите, если хотите подключиться к учетной записи, отличной от Sironfoot. "

Получить токен доступа:

* * 1 042 HTTP: //twitter.com/oauth/access_token oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q & oauth_nonce = 2016804 & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1244567166 & oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio & oauth_version = 1,0 & oauth_signature =% 2bEVQUxUPLT% 2b% 2bkfaG0Vq1YJZXcAw% 3d

Обновление статуса Вызов API: URL - http: //twitter.com/statuses/update.xml * Тысяча сорок-девять * данные POST * 1 050 * - oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q & oauth_nonce = 5707692 & oauth_signature_method = HMAC-SHA1 & oauth_timestamp = 1244567268 & oauth_token = 19130957-nb89DjZhjCAzcbHUa96yRWHqlQFQIJ0AKyXpqnHt1 & oauth_version = 1,0 & состояние = HelloWorld & oauth_signature = WQA% 2bWY0IxveeSJ7G3Ewy3whh1sE% 3d * один тысяча пятьдесят-один *

Ответы [ 5 ]

15 голосов
/ 10 июня 2009

Не знаю, в чем проблема, но я удалил свою регистрацию приложений в Twitter (Вы должны зарегистрировать приложения в Twitter, чтобы получить ключи OAuth и т. Д.), А затем воссоздал ее. Теперь работает нормально. Странно, вероятно, проблема с провалом в Твиттере.

Я также использую Tweetsharp (http://tweetsharp.com/), очень рекомендую, у него хороший беглый API. Примечание. Я удаляю и воссоздаю регистрацию приложения в твиттере.

8 голосов
/ 30 апреля 2010

Если вы разрешили своему приложению доступ к своей учетной записи Twitter, когда приложение было установлено в режиме «только для чтения», и вы получили ошибку «Только для чтения приложение не может выполнить POST» после изменения настроек приложения на «доступ для чтения и записи» msgstr "затем вы должны отозвать доступ к приложению на https://twitter.com/settings/connections и затем повторно авторизовать его. «Только для чтения» access_token имеет тенденцию быть липким, пока вы не отзовете его.

3 голосов
/ 26 августа 2010
  • Перейти к http://www.twitter.com/oauth_clients
  • Выберите приложение.
  • Редактировать настройки приложения.
  • Установить тип доступа по умолчанию для чтения и записи.
  • Сохранить и запустить.

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

1 голос
/ 11 мая 2010

плюс также проверьте, синхронизирован ли CLOCK вашей системы с интернетом; на окнах вы можете сделать это, изменив настройки даты и времени

потому что, если ваш CLOCK не синхронизирован, вы получите 401 несанкционированное исключение; удачи веселит

0 голосов
/ 26 февраля 2010

Я уже несколько раз, но безуспешно, я получаю исключение 401 при запросе токена доступа из твиттера.

Я использую Tweetsharp так же, как и вы.

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