php instagram api авторизация

Php instagram api авторизация

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация Instagram PHP API V2

A PHP wrapper for the Instagram API. Feedback or bug reports are appreciated.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Please note that Instagram mainly refers to »Clients« instead of »Apps«. So »Client ID« and »Client Secret« are the same as »App Key« and »App Secret«.

I strongly advice using Composer to keep updates as smooth as possible.

Initialize the class

Authenticate user (OAuth2)

array if you want to authenticate a user and access its data:

string if you only want to access public data:

Optional scope parameters:

true : Returns only the OAuth token
false [default] : Returns OAuth token and profile data of the authenticated user

Set / Get access token

Public methods

Authenticated methods

Authenticated methods

Please note that the modifyRelationship() method requires the relationships scope.

Public methods

Public methods

Authenticated methods

Please note that the authenticated methods require the comments scope.

Public methods

Authenticated methods

All parameters are optional. If the limit is undefined, all available results will be returned.

Instagram entries are marked with a type attribute ( image or video ), that allows you to identify videos.

An example of how to embed Instagram videos by using Video.js, can be found in the /example folder.

Please note: Instagram currently doesn’t allow to filter videos.

In order to prevent that your access tokens gets stolen, Instagram recommends to sign your requests with a hash of your API secret, the called endpoint and parameters.

Go into more detail about how it works in the Instagram API Docs.

Each endpoint has a maximum range of results, so increasing the limit parameter above the limit won’t help (e.g. getUserMedia() has a limit of 90).

That’s the point where the «pagination» feature comes into play. Simply pass an object into the pagination() method and receive your next dataset:

Iteration with do-while loop.

Samples for redirect URLs

Registered Redirect URIRedirect URI sent to /authorizeValid?
http://yourcallback.com/http://yourcallback.com/yes
http://yourcallback.com/http://yourcallback.com/?this=thatyes
http://yourcallback.com/?this=thathttp://yourcallback.com/no
http://yourcallback.com/?this=thathttp://yourcallback.com/?this=that&another=trueyes
http://yourcallback.com/?this=thathttp://yourcallback.com/?another=true&this=thatno
http://yourcallback.com/callbackhttp://yourcallback.com/no
http://yourcallback.com/callbackhttp://yourcallback.com/callback/?type=mobileyes

If you need further information about an endpoint, take a look at the Instagram API docs.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

This example project, located in the example/ folder, helps you to get started. The code is well documented and takes you through all required steps of the OAuth2 process. Credit for the awesome Instagram icons goes to Ricardo de Zoete Pro.

More examples and tutorials:

Let me know if you have to share a code example, too.

Please see the changelog file for more information.

Released under the BSD License.

About

An easy-to-use PHP Class for accessing Instagram’s API.

Источник

Instagram API Basic Display — получение токена, первый запрос

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

API Instagram Basic Display, то есть базовый интерфейс instagram API — это API для сторонних приложений и веб сайтов, с помощью которого они могут получить данные профиля пользователя Instagram, а также его видео и изображения.

Быстрая навигация:

Принцип работы API такой: сначала вы показываете пользователю окно авторизации, где он проходит процедуру аутентификации и авторизует ваше приложение для доступа к своим данным, а так же дает определенные разрешения. После аутентификации пользователь перенаправляется обратно в ваше приложение (веб сайт), в url которого будет добавлен код авторизации. Вам нужно будет получить этот код и обменять его на access token. Получив этот токен, вы сможете делать запросы к API и использовать данные и медиа, доступ к которым разрешил вам пользователь.

Не все данные пользователя будут доступны вам сразу. Для полноценной работы вашему приложению потребуется получить от пользователя следующие разрешения:.

Для того чтобы вы смогли получать от настоящего пользователя такие разрешения, вашему приложению нужно будет пройти процесс проверки. На проверку приложение необходимо будет направить после того как вы закончите процесс разработки. Сделать это можно будет на вкладке Basic Display > Проверка приложения «Instagram Basic Display»

Давайте начнем разработку.

1 Создание facebook приложения

Для начала перейдите по ссылке https://developers.facebook.com и войдите в свой facebook аккаунт. Затем нажмите вкладку Мои приложения и создайте новое. Или нажмите кнопку Начать, если вы не создавали facebook приложений ранее.

Вы окажетесь в панели facebook для разработчиков, нажмите Настройки, затем Основное. В этой форме нам понадобится заполнить данные:

Введите адрес сайта и сохраните изменения.

2 Настройка Instagram API Basic Display

Перейдите в раздел Basic Display и внизу страницы нажмите кнопку Create New App

Перед нами форма с настройками Basic Display. Желательно заполнить в ней все поля. Приступим:

3 Добавляем тестировщика Instagram

Добавим к нашему приложению пользователя для тестов. Такие пользователи могут проверять приложение только в режиме разработки. В боковой панели нажмите Роли > Роли и прокрутите страницу вниз до раздела Тестировщики Instagram. Нажмите кнопку Добавить тестировщика

Откройте новое приватное окно браузера и войдите в instagram профиль тестировщика. А в панели для разработчиков введите id этого пользователя, чтобы пригласить его. После чего тестировщику придет уведомление, с просьбой принять запрос из вашего приложения, которое тестировщик должен подтвердить. Чтобы это сделать, нужно зайти в профиль инстаграм, нажать Редактировать профиль, выбрать вкладку Приложения и сайты > Приглашения для тестировщиков.

4 Аутентификация тестировщика

В новом окне браузера вставьте сгенерированный URL. Должно появиться окно с именем приложения и вашего тестировщика. Нажмите авторизовать, чтобы предоставить приложению доступ к данным вашего профиля. Если все пройдет успешно, вы окажитесь на странице, которую вы указывали в поле URI. Посмотрите на URL, в конце после строки ?code= будет добавлен код авторизации. Скопируйте его без символов #_ в конце и сохраните под рукой. Этот код действует в течении 1 часа.

5 Получение токена Instagram API Basic Display

Для следующего шага нам понадобится интерфейс командной строки. Для отправки cURL запроса мы будем использовать Cmder. Отправьте следующий POST запрос в Instagram API:

Если вы нигде не ошиблись, вам придет JSON объект содержащий access token и id пользователя-тестировщика. Скопируйте токен, он нам понадобится в следующем шаге.

Токены доступа пользователей Instagram не долговечны и действительны только в течении 1 часа.

6 Запрос на получения имени пользователя

Попробуем получить имя пользователя. Для этого скопируйте url ниже, и замените в нем USER-ID и ACCESS-TOKEN данными, которые мы получили ранее.

Если вы все сделали правильно, Instagram API вернет вам JSON с id и именем пользователя.

Вы также можете использовать узел Me, который сам определит id пользователя Instagram, который предоставил токен. Результат будет таким же.

Параметр fields может содержать следующие значения:

Источник

Верификация для доступа к API Instagram

Примерно с мая месяца Facebook разрешил подключения к API обмена сообщениями с Instagram, но процедура подключения несколько запутанная. Под катом некоторые нюансы и шишки прохождения процедуры верификации приложения для работы с сообщениями Instagram.

API обмена сообщениями с Instagram ничем не отличается от API обмена сообщениями с Facebook, только в теле сообщения в параметре platform будет указано «Instagram», в отличии от сообщения с Facebook, для которого в platform будет указано «page».

А вот процедура верификации приложения в случае Instagram имеет несколько отличий от верификации в случае Facebook.

1. Так же как и с Facebook, настраиваем Вебхук на наш бекэнд, только в разделе Instagram, генерируем токен, и прописываем токен на стороне бекэнда, проверяем, что вебхук подтвердился.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Напоминаю, что проверить статус токена, срок его действия, и какие на нем разрешения, можно в специальном инструменте Facebook «Access Token Debugger».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

2. Для подключения к Facebook необходимо было получить разрешения «pages_messaging» и «Business Asset User Profile Access». Первое для получения и отправки сообщений, второе для считывания имени и фамилии пользователя.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

В случае с Instagram необходимо получить два похожих разрешения, «instagram_manage_messages» и «instagram_basic». Аналогично, первое для получения и отправки сообщений, второе для считывания имени и фамилии пользователя. В отличии от Facebook, в Instagram имя и фамилия лежат в одном параметре.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

3. При запросе разрешений, создается заявка на верификацию, такая же как и при подключении к Facebook. Но при подключении к Facebook было достаточно вложить screencast, то есть записанное видео, со следующим сценарием:

a) Входим на страницу компании в Facebook.

b) Входим на бекэнд компании, куда приходят сообщения.

c) Показываем, как сообщения со страницы попадают на бекэнд, и как уходят – приходят ответы на эти сообщения.

При этом пользователь, от которого отправляем сообщения, должен быть добавлен в роль Тестовые пользователи приложения:

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

В случае с Instagram, есть два существенных момента:

3.1. На текущий момент, на август 2021 г., Instagram пропускает на бекэнд сообщения только если сообщения отправляем в Instagram на страницу компании, в имени которой есть префикс test_

Так как вряд ли вы будете переименовывать официальный Instagram экаунт компании, то конечно нужно создать тестовую страницу компании в Instagram, и ее соединить с тестовой страницей компании в Facebook, и далее все это указать в настройке вебхука. На скрине префикс test_ есть и у страницы компании, куда отправляем сообщения, и на всякий случай, для верности, имя тестового пользователя, который отправляет сообщения, тоже начинается с test_:

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

По поводу нужен ли префикс test_ в имени тестового пользователя: в группе тех.поддержки мессенджера ответили, что нет, префикс test_ нужен только у тестовой страницы, получающей сообщения. Но до этого, при прохождении процедуры верификации, я видел, как верификатор Facebook переименовал учетку тестового пользователя, добавил префикс test_. Поэтому лишним не будет, пусть префикс test_ будет в Instagram как у отправителя, так и у получателя.

Если отправлять заявку без учетки от бекэнда, то будет вот такая куча отказов, с ссылкой «читайте документацию»:

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

4. После формирования запроса на доступы «instagram_manage_messages» и «instagram_basic» у приложения автоматически будут добавлены продукты «Facebook Login» и «Instagram Graph API». Хотя собственно для обмена сообщениями в этих продуктах ничего настраивать не нужно, Facebook добавляет их именно для интеграции страницы компании в Facebook со станицей компании в Instagram. Удалить эти продукты из приложения невозможно. Недостатком является то, что верификатор может начать искать на входе в бекэнд кнопку входа через учетку Facebook. Поэтому в заявке можно отметить, что продукт «Facebook Login» не используется в работе бекэнда.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

5. Если в заявке на верификацию есть текст на русском языке, и/или интерфейс App Dashboard переключен на русский язык, то заявка будет несколько часов висеть в статусе «Переводится». Поэтому лучше писать заявку на английском, и кажется, интерфейс App Dashboard лучше переключить на английский.

6. После успешной верификации приложения эти самые два заветных разрешения «instagram_manage_messages» и «instagram_basic» перейдут в статус «Active».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

We are currently in phase 2 of the global rollout of the Instagram Messaging. Instagram accounts with follower count between 1K-100K are able to connect to the API. We plan to include remaining accounts for the last phase by end of Q3. Please check this page for updates.

То есть, если у страницы вашей компании в Instagram подписчиков больше, чем 100К, то сообщения доходить до бекэнда не будут. Это так, и это подтвердили в группе тех.поддержки Facebook. Нужно ждать до конца Q3.

7. Вопросы по подключению к Messaging Platform можно задавать в официальной группе Facebook, админы отвечают быстро.

Источник

Автоматизация Instagram

По работе попалась интересная задача по автоматизации Instagram, а именно надо было просто провести розыгрыш. Сервисов для организации этой затеи достаточно, есть даже бесплатные. Но были дополнительные (читай премиум) условия, к тому же мне очень захотелось самому посмотреть, что там внутри этой популярной инстаграмы и быть может набраться опыта в построении API.

Первым делом пошел смотреть что там говорят интернеты. Чтение официальных доков по API instagram дало четко понять, что владельцы не хотят давать доступ к неограниченной автоматизации, можно автоматизировать работу со своим аккаунтом в базовом варианте, но это не подходило под мою задачу, а «бизнес» вариант API требовал верификации компании, что естественно мне не подходит. (Может быть уже что-то изменилось …)

Тогда я пошел смотреть что говорят интернеты по поводу работы с тем API что есть на сайте Instagram. Все было радужно и ничего не предвещало проблем. На github были даже проекты на php, предоставляющие API для автоматизации вплоть до постинга. Статьи на Хабре гласили о легкости автоматизации. Многие из источников были нормальной свежести (пару месяцев, а то и недель). Однако …

Авторизация

Начинаем снифать (fiddler + waterfox) запросы на сайте instagram и смотреть что там. Понятное дело принимаем куки и устанавливаем их куда следует. Этот этап пропустим.

Анализ

Далее, надо авторизоваться.

Запрос в консоли Firefox, почему там проблема с Access-Control-Allow-Origin я не знаю

описания входящего пароля (PWDINSTAGRAMBROWSER)

версии шифрования (10)

времени шифрования (unixtime 1591030811)

шифрованной строки с паролем

Немного поигравшись не трудно догадаться что unixtime принимает участие в шифровании, так как шифрованная строка при каждом запросе разная.

Погуглив, можно найти варианты авторизации без шифрования пароля, однако эти методы на момент написания данного материала уже не работали. На просторах github можно найти вариант шифрования пароля на nodejs. Обнадежил этот вариант, но оказался не рабочим.

Проблема

После долгих поисков было решено пройтись отладчиком по коллстеку шифрования пароля. Товарищ по одному из проектов подсказал, что возможно на клиенте instagram используется эта библиотека криптографического шифрования. Сравнивая минифицированный код из отладчика (тот еще изврат) и исходный код библиотеки стало ясно, что скорее всего это так. Но решение задачи это не облегчило.

Разбирая стек я понял, что исходные данные кодировались в нужную форму, а затем отправлялись на шифрование дальше в js. Через несколько часов гуляния по стеку с минифицированным асинхронным js (лютая хрень) я заблудился … и решил не принимать этот вызов (самостоятельного разбора этого блудника), а найти альтернативный путь, потому что неизвестно в какой момент владельцам инсты стрельнет в голову сменить алгоритм шифрования.

Первая дыра в безопасности

Прежде чем окончательно забросить идею авторизации в instagram на php, я решил проверить как там обстоят дела с авторизацией на основании сгенерированных данных на js. Для этого взял эти данные из перехваченного трафика (можно из консоли где xhr запросы, но я взял из fiddler) и попробовал авторизоваться через php на локальном сервере. Наконец-то получил заветный позитивный ответ об успешной авторизации и токен.

Решение проблемы и вторая дыра в безопасности

Тогда я вспомнил мое недавнее знакомство с nodejs и puppeteer и решил попробовать скинуть этап авторизации на указанные технологии. И получилось 🙂

Перехватив один раз заголовки после авторизации, последующую неделю удавалось их спокойно использовать (есесно совместно с куками):

Нести на php хостинг node.js затея так себе, есть вариант запускать node.js на локальной машине по расписанию, и пусть данные после отработки автоматически отсылаются на целевой сервер, но это так, мысли в слух.

Сборка данных

Данные без пагинации

Теперь настало время сборки необходимых данных. Первым делом нужно достать информацию о посте. Она находится в html ответе на запрос вида:

где вместо shortcode нужно написать символьный идентификатор нужного поста. Незамысловатой регуляркой вытаскиваем json со страницы и выдергиваем из него нужные данные.

Просматривать html ответ через браузер не совсем удобно, можно просто скопипастить в привычный редактор и там рассмотреть что надо

Примерно таким же образом достается инфа о странице пользователя

Данные с пагинацией

А теперь самое интересное 🙂

Нужно вытащить все комментарии, лайки, подписчиков. Опять идем и анализируем запросы. Instagram API использует graphql (что-то типа свой rust-full со своими приколами). Запрос выглядит следующим образом:

Например сборка лайков:

Да, usleep обязателен, иначе доступ по этому запросу при частом обращении будет ограничен (даже если попытаться юзать как обычный пользователь через веб версию). Особенно это актуально для больших объёмов данных. Например для сборки

1000 комментариев, такая пауза вполне нормальная, но на сборке

5000 комментариев мой фейковый акк не раз получал бан, из-за чего пришлось увеличить паузу между запросами до 3-5 секунд. И то в некоторых случаях (видимо все зависело от звезд), инстаграм выдавал бан на этот запрос.

В итоге на организацию коленочного API ушло около 20 часов.

Instagram заставил попотеть и испытать различные эмоции от использования API, но поставленная цель была достигнута в полном объёме.

Источник

Получаем посты из своего аккаунта Instagram посредством нового API Instagram Basic Display

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Создание приложения

Для начала нам необходимо создать учетную запись разработчика на Facebook и создать приложение. Для этого переходим на https://developers.facebook.com/, авторизуемся (если обычного аккаунта Facebook у вас нет, то система в любом случае предложит начать с его создания) и в меню «Мои приложения» выбираем «Создать приложение». После чего указываем название приложения и почту, нажимаем «Создайте ID приложения».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Укажите адрес вашего сайта, на котором вы будете размещать ленту из Instagram. Сохраните изменения.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Платформу можно не указывать, работать будет и без нее. Но в официальной документации данный пункт присутствует, поэтому я включил его в туториал. Скорее всего это необходимо для прохождения приложением проверки, но мы обойдемся и без нее. Так как нам достаточно только создать токен для доступа к данным аккаунта — об этом далее.

Затем перейдите в меню «Товары» и выберите Instagram, нажав на кнопку «Настроить». Страница обновится и появится дополнительное меню слева. Перейдите в меню «Basic Display» и внизу нажмите на кнопку «Create New App».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

В открывшемся окне вводим название нашего приложения. После этого откроется страница настроек, где необходимо указать адрес нашего сайта. Во все три поля вводим одно и то же значение — этого будет достаточно для нашей задачи. Обратите внимание, что адрес сайта обязательно должен быть с https. Сохраняем данные и далее нажимаем на кнопку «Add or Remove Instagram Testers».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Внизу страницы нажимаем на «Добавить Instagram Testers». В окошке вбиваем название аккаунта, из которого будем тянуть фотографии и нажимаем «Отправить».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Далее нам необходимо перейти на сайт https://www.instagram.com/, залогиниться в аккаунт, указанный в приложении как тестировщик, и перейти в настройки, выбрав пункт «Apps and Websites».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Переходим во вкладку «Tester invites» и нажимаем «Accept» напротив нашего приложения.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Возвращаемся в кабинет разработчика Facebook и переходим в меню Basic Display и напротив нашего аккаунта нажимаем «Generate Token».

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

В открывшемся окне нам нужно войти в свою учетную запись Instagram, после чего нам будет предложено скопировать токен для доступа к Instagram API.

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Это и есть так называемый long-lived token, который будет действителен в течении 60 дней. И именно его можно периодически обновлять — обновление доступно спустя сутки после создания/обновления предыдущего токена.

Получение ленты Instagram на PHP

Итак, настроив приложение в кабинете разработчика Facebook, можно приступать к интеграции ленты на сайт. Я буду использовать Heroku, так как на нем есть https и он позволяет бесплатно хостить простые приложения, но вы можете использовать любой подходящий вариант. Также обратите внимание на то, что в примерах кода используется библиотека curl — убедитесь, что она у вас установлена.

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

Сперва проверяем дату создания токена. Если токен был создан около 60 дней назад (но не более, иначе обновить не получится), то сперва нам нужно его обновить. Для этого используем endpoint GET /refresh_access_token.

Данные приходят в JSON-формате, а сам токен содержится в свойстве access_token.

Обновив токен, или же если он у нас был не такой уж и старый, мы можем отправить запрос на получение ленты из нашего аккаунта. С помощью Basic Display API можно получить изображения, видео, а также подписи к ним и ссылки на публикации. Для получения данных нам понадобится endpoint GET /me/media

Данные будут содержаться в свойстве data. Список всех возвращаемых свойств:

php instagram api авторизация. Смотреть фото php instagram api авторизация. Смотреть картинку php instagram api авторизация. Картинка про php instagram api авторизация. Фото php instagram api авторизация

Но тут возникает проблема, решение которой я не нашел в документации. Если в ленте у нас есть публикации в виде альбомов (media_type будет равен CAROUSEL_ALBUM), то есть несколько изображений/видео в одном посте, то в ответе на запрос придет только первое изображение в карусели. Для получения всех изображений в параметре fields нам нужно указать параметр children. Но и в этом случае мы получим только id изображений:

В документации указано, что для получения изображений из карусели необходимо использовать endpoint GET //children. Но выходит что на каждую карусель нам необходимо посылать дополнительный запрос к API. А если мы получаем 50 каруселей? Я решил поэкспериментировать и в итоге нашел способ получения данных изображений карусели в изначальном запросе. Для этого я использовал следующий формат:

Отправив такой запрос, мы получим все изображения постов, а в свойстве children помимо id будут находится все свойства, перечисленные в параметре запроса children.

В итоге, наш окончательный код будет выглядеть так:

Обратите внимание, что я использую дополнительный параметр limit для указания количества получаемых постов. Если его не указать, то вернется количество по умолчанию, а именно 25. Если постов больше, чем запрашиваемое количество, то в ответе придет свойство paging, где будут указаны ссылки для пагинации, то есть для получения следующих и предыдущих постов.

Работающий код можно посмотреть тут.
Исходники тут.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *