Проблема с Twitter API: невозможно обновить статус - PullRequest
0 голосов
/ 28 марта 2010

Я пытаюсь создать расширение Google Chrome, которое будет отправлять интересные ссылки в твиттер. Но я не могу подключиться к Twitter. Сервер получает мой запрос, но ответ всегда один и тот же: «У вас нет прав доступа к /1/statuses/update.json на этом сервере (403 Запрещено)». Я использую Wireshark для проверки ответов Http. Вот код функции, которую я использую:

function setStatus(msg) {
var status = "status="+msg;
var client = new XMLHttpRequest();
client.open("POST","http://api.twitter.com/1/statuses/update.json");
client.setRequestHeader("Authorization", "Basic <user credentials>");
client.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
client.onreadystatechange = function(){
        if(client.readyState ==4){
            //whatever
        }
    }
client.send(status);

Я что-то не так делаю? Я использую Basic Auth. Я использую этот инструмент для кодирования, и просто помещаю результат вместо части "учетные данные пользователя". Кроме того, кто-то может дать мне пример OAuth?

Ответы [ 3 ]

1 голос
/ 06 апреля 2010

Я уже опубликовал, в чем была проблема, но по какой-то причине этот пост отсутствует. Не важно, вот что случилось: Пример кода, который я дал в первом посте, был верным, но я допустил ошибку в файле манифеста. Файл манифеста содержит раздел «разрешения» - мне нужно было перечислить все ссылки, которые будет использовать расширение. Я забыл перечислить "http://api.twitter.com", и это было проблемой. Когда я добавил эту ссылку, все начало работать. Спасибо за предложения и ответы.

0 голосов
/ 04 апреля 2010

Вы также должны уметь:

client.open("POST","https://screen_name:password@api.twitter.com/1/statuses/update.json");

и не беспокоиться об изменении заголовков запроса.

0 голосов
/ 28 марта 2010

Используйте /account/verify_credentials, чтобы сначала проверить свою аутентификацию, возможно, вы допустили некоторые ошибки с кодировкой, или пароль просто неверный.

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