Ошибка API Twitter: «внутренняя ошибка сервера» - PullRequest
0 голосов
/ 12 мая 2011

Я пытался использовать Twitter API, чтобы публиковать твиты с использованием Javascript.Подробности Ниже

База Струнный

POST & HTTP% 3A% 2F% 2Fapi.twitter.com% 2F1% 2Fstatuses% 2Fupdate.json & oauth_consumer_key% 3DXXXXXXXXXXX% 26oauth_nonce% 3D9acc2f75c97622d1d2b4c4fb4124632b1273b0e0% 26oauth_signature_method% 3DHMAC-SHA1% 26oauth_timestamp% 3D1305227053% 26oauth_token% 3D159970118-XXXXXXXXXXXXXXXXXXXXXXX% 26oauth_version% 3D1.0% * 101 * 101 * 101 * 100 * * * * * * * * * * * * * * * * * * 100* OAuth oauth_nonce = "9acc2f75c97622d1d2b4c4fb4124632b1273b0e0", oauth_signature_method = "HMAC-SHA1", oauth_timestamp = "1305227053", oauth_consumer_key = "XXXXXXXXXXXXXXXXX", oauth_token = "159970118-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", oauth_signature = "IWuyoPJBrfY03Hg5QJhDRtPoaDs% 3D", oauth_version = "1.0"

Я использовал метод POST с телом "status = Hello"

Но я получил ОШИБКУ ВНУТРЕННЕГО СЕРВЕРА .. Есть ли ошибки на моей стороне ??Заранее спасибо.

Используемый код Javascript

h - приведенный выше заголовок

tweet = "Hello"

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

var xhr = new XMLHttpRequest();
xhr.open("POST","http://api.twitter.com/1/statuses/update.json", false);
xhr.setRequestHeader("Authorization",h);

xhr.onreadystatechange = function() {

    if (xhr.readyState == 4 )
    {
        console.log("STATUS="+xhr.status);  
        console.log("RESPONSE="+xhr.responseText);  
    }
}

xhr.send("status="+encodeURLall(tweet));

}

1 Ответ

0 голосов
/ 14 мая 2011

Вы не можете получить доступ к сайту Twitter с помощью XMLHttpRequest из-за Одинаковая политика происхождения .Вместо этого используйте JSONP или прокси на стороне сервера (позвоните на свой собственный сервер, который перенаправляет ваш запрос в Twitter).

Кстати, что делает encodeURLall()?Разве вы не должны просто использовать encodeURIComponent?


Обновление: Цитировать Google :

Обычные веб-страницы могутиспользуйте объект XMLHttpRequest для отправки и получения данных с удаленных серверов, но они ограничены той же политикой происхождения .Расширения не так ограничены.Расширение может общаться с удаленными серверами за пределами своего источника, если оно сначала запрашивает разрешения между источниками.

Пожалуйста, прочитайте там, чтобы увидеть, какие настройки вы должны изменить, чтобы это работало.

...