Требуются знания: базовые знания ReactJs, Axios (потому что мне нравятся axios) и общедоступный домен Instagram (это не сработает для частных доменов Instagram).

Прежде всего, нам нужно установить пакет axios в ваш проект реагирования, нажав npm install axios в терминале.

После установки пакета мы создаем компонент с отслеживанием состояния, чтобы мы могли хранить данные в состоянии. Внутри компонента мы импортируем аксиомы из «аксиосов», которые мы только что установили. Затем мы создаем пустой массив для данных instagram в состоянии.

Во-вторых, мы создаем метод componentDidMount, чтобы мы могли использовать аксиомы для выборки данных. Если вы не знаете, почему мы извлекаем данные внутри componentDidMount, вот ссылкаузнать об этом подробнее. Мы также используем async — await здесь, в компоненте componentDidMount. Почему мы используем здесь async — await? Вы можете узнать здесь.

Внутри componentDidMount мы создаем еще один пустой массив с именем data для хранения изображений, которые мы получим из Instagram.

Затем мы объявляем 5 переменных: url, instaSource, instaObj, convertedJsonObj и mediaArr.

url: мы храним домен instagram (в качестве примера я использую tesla instagram). По умолчанию Instagram позволяет нам использовать 12 последних публикаций из общедоступных источников. Это единственное ограничение, которое у нас есть для использования этого метода.

instaSource: мы храним обещание ожидания, что мы используем axios для получения данных из домена instagram.

instaObj: мы нацеливаемся на данные (см. скриншот-1) в обещании, и из этого обещания мы нацеливаемся на тег скрипта .__sharedData. (см. скриншот-2), чтобы получить то, что нам нужно, а именно медиа-объект из Instagram, с помощью регулярного выражения и методов match() и slice(). Если вам интересно, что такое регулярное выражение, я бы порекомендовал эту ссылку.

convertedJsonObj: после этого мы конвертируем необработанные данные в объект JSON (см. скриншот-3)

mediaArr: наконец, мы нацеливаем объект entry_data (см. скриншот-4), чтобы получить изображения массив и сохраните его в mediaArr. Из mediaArr мы проходим по массиву edges и помещаем объект node (см. скриншот-4) в наш пустой массив data, который мы создали ранее. И последнее, но не менее важное: мы вызываем setState() внутри componentDidMount, чтобы сохранить массив data в состоянии.

Получив все необходимое, нам нужно создать функцию для вывода изображений на нашу веб-страницу (см. строку 33 на скриншоте-5).

Наконец, перед рендерингом полученных изображений нам нужно сначала проверить, есть ли данные, прежде чем рендерить их в DOM, используя троичное выражение внутри возврата метода рендеринга (см. строка 47 скриншота-5). Если вы не знаете, что такое троичное выражение, я бы порекомендовал проверить эту ссылку.

А вот скриншот только что созданного компонента.

Если вам нравится этот пост, пожалуйста, поделитесь. Спасибо за чтение.