Я пытаюсь использовать 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 * один тысяча пятьдесят-один *