У меня есть простая веб-страница, на которой можно создать только текстовый твит через API REST Twitter на https://api.twitter.com/1.1/statuses/update.json.Я также могу загрузить изображение в формате JPG в Twitter с помощью https://upload.twitter.com/1.1/media/upload.json и вернуть числовое значение media_id
успешно. Что я не могу сделать, так это соединить эти два вместе для создания твита с изображением: он получит код состояния HTTP 401, если я добавлю в media_id!
Я использую ASP.NET (у меня есть обаVB и C # примеры) но я ожидаю, что проблема не является специфичной для этого языка.Единственные два бита кода твита, которые я изменяю, - это то, где создается одна и та же «строка запроса»:
var baseFormat = "oauth_consumer_key={0}&oauth_nonce={1}&oauth_signature_method={2}&oauth_timestamp={3}&oauth_token={4}&oauth_version={5}&status={6}&media_ids={7}";
var baseString = string.Format(baseFormat, oauth_consumer_key, oauth_nonce, oauth_signature_method, oauth_timestamp, oauth_token, oauth_version, Uri.EscapeDataString(TweetText), TwitterMediaID);
и
var postBody = "status=" + Uri.EscapeDataString(TweetText) + "&media_ids=" + TwitterMediaID;
using (System.IO.Stream stream = request.GetRequestStream())
{
byte[] content = System.Text.ASCIIEncoding.ASCII.GetBytes(postBody);
stream.Write(content, 0, content.Length);
}
Все, что на самом деле делает, это добавляет &media_ids=1104003004334784512
до конца строки.Остальная часть моего кода не меняется.
JSON, который мне возвращается: {"errors":[{"code":32, "message":"Could not authenticate you."}]}
Если я удаляю &media_ids=12345678901234567
, то код успешен (код состояния HTTP 200 и многополезного JSON вернул)Я читал различные блоги, в которых упоминалось, что у людей возникали периодические ошибки HTTP 401 при использовании media_ids, которые вообще не имели отношения к аутентификации, но ни одно из предлагаемых ими решений не применимо к моей рассылке.
ДокументацияПредполагается, что мой media_id работает в течение 2 часов, так как я могу вносить беспорядок в аспект аутентификации, когда мои только текстовые твиты появляются в моем профиле Twitter в порядке?