Как получить данные из 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 (), необходимо установить следующее:

  1. Узел
    Чтобы получить и установить узел в вашей системе, перейдите на nodejs.dev и загрузите версию LTS (долгосрочная поддержка). После установки откройте терминал в своей системе и попробуйте следующие команды, и вы увидите номера версий. Здесь npm - это менеджер пакетов для узловых приложений. Нам нужен npm для установки сторонних библиотек для нашего приложения.
  2. Текстовый редактор / IDE (интегрированная среда разработки)
    Вы можете использовать любой текстовый редактор или IDE. Однако я рекомендую использовать VSCode, бесплатный редактор кода с открытым исходным кодом от Microsoft.
  3. Ключи 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 ():

  1. Использование then () и catch ()
  2. Использование 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