Ошибка состояния 401 при запуске твиттера с использованием узла. Возможная ошибка авторизации - PullRequest
1 голос
/ 02 ноября 2019

Я столкнулся с проблемой подключения с помощью Twitter API npm. Я не смог решить эту проблему до сих пор. Проблема, с которой я столкнулся во время чтения и практики из книги Семми Пуреваль, в этом примере мы хотим транслировать твиты, содержащие определенные слова. Решая проблему, я пробовал различные методы, которые я либо нашел в Интернете, либо подумал о себе. Сначала я покажу код ошибки с моего терминала, после чего я упомяну, что я пробовал и каковы мои настройки. Пожалуйста, примите к сведению, что я начинающий программист, и тем не менее мне нравилось пытаться решить проблему, которую я мог найти в Интернете. Однако, после того, как я не нашел удовлетворительного решения, я перехожу к Stack Overflow, чтобы задать свой первый вопрос, связанный с технологией;).

Ошибка при запуске twitter.js (файл JS найден в конце вопроса)

Error: Status Code: 401
    at Request.<anonymous> (/home/vagrant/app/twitterapi/node_modules/twitter/lib/twitter.js:277:28)
    at emitOne (events.js:77:13)
    at Request.emit (events.js:169:7)
    at Request.onRequestResponse (/home/vagrant/app/twitterapi/node_modules/request/request.js:1066:10)
    at emitOne (events.js:77:13)
    at ClientRequest.emit (events.js:169:7)
    at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:414:21)
    at HTTPParser.parserOnHeadersComplete (_http_common.js:88:23)
    at TLSSocket.socketOnData (_http_client.js:304:20)
    at emitOne (events.js:77:13)

Мой js-код выглядит точно так же, как пример, приведенный в книге на стр. 197. Я узнал, что ошибка состояния 401 генерируется, когда возникают проблемы с авторизацией, ИЛИ в другие неописанные моменты (согласно API Twitter).

Различия в настройках:

  • Я установил пакеты узлов локально в папке Twitter, потому что у меня были ошибки при установке Express. (Сначала я запустил npm init, затем npm install express)
  • Я запускаю Ubuntu 16.04
  • Я запускаю виртуальный ящик 5.2 (вместо 6)
  • Сервер работает набродячая коробка

Несколько методов, которые я попробовал:

  • Использование различных API Twitter вместо ntwitter (таких как 'twitter' и 'twit') *
  • Создание объектной переменной, содержащей коды авторизации и использующей ее для инициализации моего твиттера
  • Единственный запуск строки твиттера (без потока), которая не выдает ошибок.
  • Используется другойутверждение вместо статусов / фильтра и отслеживания:

К сожалению, я сломал голову, пытаясь решить эту проблему в течение нескольких часов, мне нравилось пытаться выяснить, в чем проблема, но я продолжу безиспользуя этот пример, ни последующие практические упражнения, использующие этот пример. Тем не менее, я бы хотел увидеть, найдет ли кто-нибудь решение. Я хотел бы поэкспериментировать с использованием Twitter API

Спасибо!

Мои файлы js и json соблюдаются.

var twitter = require("twitter"),
    credentials = require("./credentials.json"),
    client;

var credentialObject = {
"consumer_key": "xx",
"consumer_secret": "xx",
"access_token_key": "xx",
"access_token_secret": "xx"
};

console.log(credentials);

//setting up our twitter object
client = new twitter(credentials);


//setting up our twitter stream with three parameters, seperated by commas
client.stream(
    //the first parameter is a string
    "statuses/filter",

    //second parameter an object containing an array
    {"track": ["Awesome", "cool", "rad", "gnarly", "groovy"]},

    //the third parameter is our callback for when the stream is created
    function(stream){
        stream.on("data", function(tweet){
            console.log(tweet.text);
        });

         stream.on('error', function(error) {
                throw error;
        });
    }
);

credentials.json структура файла

{
"consumer_key": "xx",
"consumer_secret": "xx",
"access_token_key": "xx-xx",
"access_token_secret": "xx"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...