Я пытаюсь использовать Twitter API и OAuth для отправки обновлений статуса (новые Tweets). Я использую пример кода Шеннона Уитли .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!?
Я искал это сообщение об ошибке, пока не стал синим. Я нашел где-то, что сказал, чтобы добавить paremeter querystring oauth_access_type = написать URL-адрес перенаправления, который идет на страницу авторизации Twitter, которую я сделал, но он все равно дает мне 401.
Если это помогает, вот данные, которые отправляются назад и firth в соответствии с рабочим процессом 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 = написать
Авторизованное экранное сообщение: "Приложение TweeVerbs.com(Development), похожее на возможность доступа и обновления ваших данных в Twitter. Это приложение планирует использовать Twitter для входа в систему в будущем Выйдите из системы, если вы хотите подключиться к другой учетной записи, кроме Sironfoot.
Получить токен доступа:
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 - 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