Как получить данные из Twitter API на JavaScript - руководство для начинающих.
Вступление
Twitter - популярная платформа социальных сетей, где пользователи могут делиться своими взглядами, идеями и читать сообщения других пользователей по различным темам. Исследователи, разработчики, блоггеры и люди из многих областей используют Twitter для сбора данных. Вы можете найти хорошо написанный блог о том, как создать учетную запись разработчика для Twitter API. В этом блоге упоминаются все параметры и фильтры, которые можно использовать с API стандартного поиска. Настоятельно рекомендуется просмотреть этот блог и получить общее представление о Twitter Search API. Вы можете найти официальную документацию API здесь.
В этом сообщении блога мы рассмотрим, как использовать Twitter API вместе с JavaScript. Вместо использования какого-либо пакета, обернутого вокруг Twitter API, мы будем использовать основную библиотеку Fetch для получения данных о желаниях из Twitter. Мы не используем никаких модулей, связанных с Twitter API, таких как twitter-v2 и twitter-lite. Цель состоит в том, чтобы научить вас использовать основной API Twitter с помощью библиотеки Fetch.
Предпосылки
Прежде чем мы начнем использовать Fetch (), необходимо установить следующее:
- Узел
Чтобы получить и установить узел в вашей системе, перейдите на nodejs.dev и загрузите версию LTS (долгосрочная поддержка). После установки откройте терминал в своей системе и попробуйте следующие команды, и вы увидите номера версий. Здесь npm - это менеджер пакетов для узловых приложений. Нам нужен npm для установки сторонних библиотек для нашего приложения. - Текстовый редактор / IDE (интегрированная среда разработки)
Вы можете использовать любой текстовый редактор или IDE. Однако я рекомендую использовать VSCode, бесплатный редактор кода с открытым исходным кодом от Microsoft. - Ключи API Twitter
Чтобы создать учетную запись разработчика и получить ключи API, следите за моим предыдущим блогом.
node -v
npm -v
Извлечь данные с помощью Fetch
В этом разделе мы увидим, как извлекать данные из Twitter с помощью модуля Fetch. Fetch - это функция на основе обещаний, используемая для отправки и получения данных с сервера. В этом блоге мы сосредоточимся только на получении данных с помощью Fetch.
В JavaScript, который мы используем в браузерах (Vanilla JavaScript), есть модуль Fetch. Здесь мы используем узел, который представляет собой среду выполнения JavaScript, с помощью которой мы можем запускать JavaScript на нашем локальном компьютере. Эта среда выполнения не имеет Fetch в основных модулях. Следовательно, нам необходимо установить его внешне для наших проектов.
Перед установкой node-fetch перейдите в любой каталог / папку, в которой вы хотите работать, и создайте папку с выбранным вами именем. Теперь, чтобы установить Fetch, откройте терминал в папке, которую вы создали в своей системе, и напишите следующее:
npm install node-fetch
Есть два способа обработки метода fetch ():
- Использование then () и catch ()
- Использование async / await
Использование then () и catch ()
Метод fetch возвращает объект ответа, который содержит ряд полезных методов на основе обещаний. Эти методы заключаются в следующем:
- response.json () возвращает обещание, преобразованное в объект JSON.
- response.text () возвращает обещание, преобразованное в необработанный текст.
- response.formData () возвращает обещание, разрешенное в FormData.
- response.blob () возвращает обещание, преобразованное в Blob (файловый объект необработанных данных).
- response.arrayBuffer () () возвращает обещание, преобразованное в ArryBuffer (необработанные общие двоичные данные).
Поскольку API Twitter возвращает данные в формате JSON, мы будем использовать только метод response.json (). Следующий код является примером получения всех твитов, содержащих ключевое слово python, и не содержащих ретвитов:
const fetch = require("node-fetch");
const token = "Bearer BEARER_TOKEN"; // Replace BEARER_TOKEN with your token const method = "GET"; const options = { method: method, headers: { "Content-type": "application/json", Authorization: token, }, };
const query = "python -filter:retweets";
const a = fetch( `https://api.twitter.com/1.1/search/tweets.json?q=${query}`, options ) .then((response) => response.json()) .then((json) => console.log(json)) .catch((error) => { console.log(error); });
Примечание. Замените слово BEARER_TOKEN своим токеном на предъявителя, который вы получили на портале разработчиков.
Мы можем присвоить запросу любую строку поиска и фильтр. Как показано в блоке кода, мы использовали response.json () для получения данных в формате JSON. Вместо ответа мы можем использовать любое имя, которое передаем в качестве аргумента в первом блоке then (). Как упоминалось ранее, response.json () снова возвращает обещание. Итак, чтобы выполнить это обещание, мы использовали еще один блок then () и получили окончательный ответ в виде данных. В процессе обработки обещаний, если мы получим какую-либо ошибку, управление будет передано блоку catch (). Этот блок используется для обработки любых ошибок.
Использование async / await
Чтобы использовать async / await, нам нужно создать асинхронную функцию и поместить нашу логику в эту функцию. Следующий код показывает, как мы можем использовать async / await с методом fetch ().
const fetch = require("node-fetch");
const token = "Bearer BEARER_TOKEN"; // Replace BEARER_TOKEN with your token const method = "GET"; const options = { method: method, headers: { "Content-type": "application/json", Authorization: token, }, };
const query = "python -filter:retweets";
const getData = async () => { try { const response = await fetch( `https://api.twitter.com/1.1/search/tweets.json?q=${query}`, options ); const data = await response.json(); console.log(data); } catch (error) { console.log("ERROR"); } };
getData();
Как показано в коде, await разрешит обещания и вернет ответ. Здесь мы использовали два ожидания, поскольку метод fetch () и response.json () оба возвращают обещания.
Примечание. Я использовал стрелочную функцию, которая является синтаксисом JavaScript версии ES6.
Для обычных задач поиска данных достаточно приведенного выше кода. При необходимости вы можете использовать любые параметры и фильтры запроса, а затем назначить их запросу. Если вы использовали какие-либо другие методы или фильтры, поделитесь своим опытом / методологией в комментариях ниже.
Заключение
Мы можем использовать любой из подходящих им методов. Могут быть и другие способы получения данных. Я упомянул здесь только один из них. Многие люди предпочитают использовать Axios, который можно использовать так же, как мы использовали метод fetch () для получения данных с помощью Twitter API. Если вы хотите узнать об API, вы можете легко понять его в блоге Что такое API?.
Если вам нравится этот блог, дайте мне знать в разделе комментариев. Дайте мне знать, если вам понадобится помощь или вы хотите что-то обсудить. Свяжитесь со мной в Twitter или LinkedIn. Вы можете прочитать другие мои блоги.
Больше контента на plainenglish.io