Api — Работа с Api Instagram


Содержание

Как сделать авторизацию в instagram через API?

собственно суть вопроса думаю ясна, пишу такой код, чтоб получить токен, но выбивает исключение с кодом ошибки 404

если у кого-то есть уже готовый метод авторизации — буду рад увидеть его, заранее спасибо

1 ответ 1

Правильно — подгружать URL пользователю в HTML-контрол или веб-браузер, позволять ему ввести свой логин-пароль и самостоятельно нажать кнопку авторизация, и уже после этого перехватывать редирект URL(implict-авторизация).

Ещё более правильно — написать небольшой вебсервис, с которым Instagram и ваше приложение будут обощатся меж собой, не выдавая никуда токен доступа(explict-авторизация). Так в разы безопаснее для вашего приложения и клиента.

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

Добавил один метод в свой класс из своего предыдущего ответа, да добавил классы методы для:

Выглядит некрасиво, но работает отлично. Уж слишком лень думать, т.к. глубокая ночь.

Ну и используя полученную авторизацию, вы можете выполнять различные действия от имени пользователя на инстаграме.

Лента instagram на сайте, 2 способа: с API, и без использования API

Отредактировано: 30 Декабря 2020

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

Получение Access Token

Для создания ленты инстаграмм на сайте вам понадобиться получить Access Token. Срок действия Access Token не вечен, по истечении срока процедуру придется повторить.

Access Token можно получить несколькими путями.

Простой путь получения Access Token

Через сайт instagram.pixelunion.net Просто нажмите на кнопку, а в предложенном окне входа выбирете аккаунт, авторизуйтесь, или зарегистрируйтесь. На выходе вы получите Access Token для вашего аккаунта.

Сложный путь получения Access Token

Самостоятельно зарегистрироваться в instagram API. При регистрации от вас захотят получить телефон, адрес web сайта и ответ на вопрос зачем вам необходим доступ к API. В качестве ответа можете написать — widget on a website.

После регистрации, в панели администрирования клиентов, нажмите кнопку «Register a New Client», в которой от вас тоже захотят увидеть подробности:

Application name — название приложения. Нельзя использовать производные от слов Instagram, IG, Insta или gram.

Description — описание.

Website — сайт. Неважно, какой сайт вы укажите в этом поле — вывод фотографий по тегу будет работать в любом случае, даже на локалке. Указывать URL нужно с http://.

OAuth redirect_uri — куда перенаправлять пользователя после авторизации приложения или отмены — тут важно указать URL, который нужен в инструменте получения токена.

После того как заполните и отправите данные клиента, при изменении данных клиента можно будет увидеть CLIENT ID и CLIENT SECRET.

Для получения Access Token из этих данных можно использовать 2 метода:


  1. Небезопасный метод: ввести в браузере ссылку в которой CLIENT-ID заменить на полученный в процессе регистрации ID, а REDIRECT-URL заменить на адрес который был введен в поле OAuth redirect_uri. Код ссылки:
  2. Безопасный метод: введите в браузере ссылку для запроса параметра code, в которой CLIENT-ID заменить на полученный в процессе регистрации ID, а REDIRECT-URL заменить на адрес который был введен в поле OAuth redirect_uri. Код ссылки: Браузер предложит вам авторизоваться, после чего перекинет на указанный сайт, а в адресной строке в конце вы сможете найти код. Скопируйте его. Дальше, для получения самого токена используйте следующий php фрагмент (в случае если используете MODX, вставьте в снипет и выведете на скрытой странице):
    • client_id: параметр Client Id
    • client_secret: параметр Client Secret
    • grant_type: authorization_code в настоящее время является единственным поддерживаемым значением
    • redirect_uri: OAuthredirect_uri, который вы использовали в запросе авторизации.
    • code: точный код, который вы получили на этапе авторизации.

Вывод ленты Instagram на сайте

После того как получили Access Token, используйте следующий код (в случае если у вас MODX, вставьте данный код в сниппет и вызовите в нужном месте):

Также, если у вас MODX, то для удобства можно вынести html в отдельный чанк:

Для корректной работы на хостинге / сервере должна быть установлена библиотека cURL

$data->id — ID публикации.

$data->link — ссылка на это изображение в Instagram.

$data->images->low_resolution->url — URL копии изображения низкого разрешения (306×306).

$data->images->thumbnail->url — URL изображения-миниатюры (150×150).

$data->images->standard_resolution->url — URL копии изображения стандартного разрешения (612×612).

$data->tags — массив, содержащий все теги данного изображения.

$data->filter — название используемого фильтра.

$data->caption->text — описание фото.

$data->created_time — дата публикации в UNIX-формате. Мы можем изменить формат даты при помощи функции gmdate():

$data->user->username — имя пользователя, который запостил фотографию.

$data->user->id — ID пользователя.

$data->user->full_name — полное имя пользователя.

$data->user->profile_picture — URL аватарки пользователя.

$data->comments->count — количество комментариев к изображению.

$data->comments->data — массив объектов комментариев, из которого можно извлечь отдельные записи с помощью цикла foreach:

$comment->created_time — дата публикации комментария в UNIX формате.

$comment->id — ID комментария.

$comment->text — текст комментария.

$comment->from->username — имя пользователя, оставившего комментарий.

$comment->from->id — ID пользователя.

$comment->from->full_name — полное имя пользователя.


$comment->from->profile_picture — URL аватарки пользователя.

$data->likes->count — количество «лайков».

$data->likes->data — массив объектов пользователей, которым понравилась фотография, также можно пропустить через цикл foreach:

$user->id — ID пользователя.

$user->username — имя пользователя.

$user->full_name — полное имя.

$user->profile_picture — URL аватарки.

Частично использовались материалы: Мишы Рудрастых

Instagram API

Чтобы использовать Instagram API, мы должны бесплатно зарегистрироваться как разработчики Instagram. Основные вещи, которые нам нужны для этого приложения — client_id и client_secret. Мы можем взять их после создания аккаунта и регистрации нового приложения.

Использование client_id и client_secret один из вариантов взятия данных из Instagram API. Другой — это позволить пользователям вашего приложения проводить аутентификацию, используя учетную запись пользователя. Пакет instagram-node содержит возможности для этого, но подобная задача выходит за рамки нашего руководства.

Мы можем сделать всё быстро на сайте Instagram Developer.

Перейдите на сайт и залогиньтесь.

Теперь перейдём к созданию нашего нового клиента (или приложения).

После создания нашего клиента мы получим client_id и client_secret.

Это именно то, что нам нужно для получения доступа к Instagram API через наше Node-приложение.

Анализ Instagram API

Давайте отвлечёмся на минуту и посмотрим через API на информацию, которую мы можем получить. Часто компании предоставляют анализатор API, так что вы можете использовать удобный интерфейс и увидеть данные JSON, которые придут из API. Парой крупных компаний, которые предлагают анализаторы API являются Facebook и Twitter.

Instagram API также предлагает анализатор через сервис под названием Apigee. Мы можем получить к нему доступ из панели управления Instagram и через Apigee Instagram API Explorer.

После открытия анализатора API он на первый взгляд может показаться немного сложным. В левой панели мы можем увидеть все вызовы API. Нам нужно только обратить внимание на вызов GET media/popular.

Если мы щёлкнем на вызове media/popular и добавим client_id пользователя в URL вроде такого:

то сможем увидеть, что API вернул важные изображения.

При ближайшем рассмотрении видим, что получаем массив изображений с именем data .

Если мы взглянем на отдельный объект в массиве data , то увидим, что он является одной фотографией со всей нужной нам информацией.

Мы можем получить информацию из comments , likes , images и user . Мы собираемся использовать их при создании нашего приложения. У нас есть всё необходимое:

  • client_id;
  • client_secret;
  • понимание данных API.
Цукерберг рекомендует:  Ping - Ping and Python


Давайте двинемся дальше и получим эти данные в нашем приложении и покажем их пользователям.

Условия и правила Instagram API

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

Основные моменты в правилах Instagram.

  • Нельзя заменять или повторять instagram.com или приложения Instagram.
  • Нельзя показывать более 30 одновременно.
  • Нельзя участвовать в любой программе обмена «лайками», «поделиться», «комментариями» или «фолловерами».

Большинство из этих правил довольно стандартны при использовании API. Создатель API хочет гарантировать, что его пользователей не забомят рекламой, спамом или фейковыми пользователями. Это помогает сохранить сообщество на высоком уровне культуры.

Итак, если мы не можем повторить сайт или приложение, какой смысл в работе с их API? Это хороший вопрос. Пока Instagram, кажется, довольно мягок с этими правилами, поскольку есть сайты и приложения, которые довольно близко повторяют основные функции. Также есть очень аккуратные приложения, вроде printstagram, которое позволит вам печатать квадратные изображения.

instagram-node

Вернёмся к нашему приложению; нам нужно будет настроить instagram-node. Давайте добавим эту строку в раздел конфигурации нашего файла server.js:

Мы заполнили учётные данные клиента, вы можете свободно передавать их, пакет instagram-node обработает всё остальное. Мы не должны беспокоиться о добавлении client_id к любому URL, как это делали в анализе API.

Пакет также упрощает вызовы API для использования. Список вызовов API можно найти в документации. Вызов, который нам нужен для популярных картинок следующий:

Мы будем использовать этот вызов, чтобы передать medias в наше представление.

Интеграция PHP-приложений с порталом Instagram

Часть 2. Использование API Instagram для ввода фотографий с портала Instagram в PHP-приложение

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

Примеры, приведенные в первой части статьи, относятся главным образом к тем оконечным точкам API, для которых не требуется авторизация пользователей по протоколу OAuth. Добавление OAuth делает возможным доступ через API-интерфейс к еще большему количеству информации. В этой второй и заключительной части я объясню, как добавить OAuth-аутентификацию к PHP-приложению и затем использовать маркер OAuth для обращения к защищенным оконечным точкам API, таким как авторизуемый канал доступа к фотографиям пользователя и его отношениям. Я также расскажу о некоторых сторонних библиотеках PHP, которые могут облегчить работу с API Instagram.

Поиск пользователей

Начнем с некоторых оконечных точек API Instagram, предоставляющих информацию о пользователях. Метод /users/search позволяет выполнять поиск пользователей Instagram по ключевым словам. Рассмотрим листинг 1, который иллюстрирует этот метод поиска в действии.

Листинг 1. Поиск пользователей

Сценарий, приведенный в листинге 1, создает Web-форму для ввода условий поиска. Затем он устанавливает соединение с Instagram API, обращается к методу /users/search с условиями поиска в качестве параметра и извлекает список подходящих пользователей. Для каждого пользователя сценарий отображает фото из профиля, псевдоним пользователя и его полное имя. Пример выходных данных показан на рисунке 1.

Рисунок 1. Поиск пользователей

Извлечение профилей пользователей

Кроме списка пользователей, API Instagram позволяет получить подробные сведения о конкретном пользователе с помощью метода /users/[user-id], который возвращает соответствующий JSON-документ. Для иллюстрации рассмотрим листинг 2, который дополняет листинг 1 поиском определенного пользователя с отображением любых обнаруженных деталей профиля.

Листинг 2. Извлечение профилей пользователей

Присмотревшись к листингу 2, можно заметить, что он фактически выполняет два запроса к API Instagram. Первый извлекает список пользователей, соответствующих условиям поиска. Если найдено точное соответствие, то второй запрос заботится о получении данных по уникальному идентификатору пользователя. Так сделано потому, что оконечная точка /users/[user-id] принимает только идентификатор пользователя, но не его имя. Сначала необходимо найти подходящих пользователей, а затем извлечь нужный идентификатор и вставить его в запрос к оконечной точке /users/[user-id].


В ответ на запрос /users/[user-id] API выдает JSON-документ с подробной информацией об указанном пользователе. Эта информация содержит псевдоним пользователя Instagram, его полное имя, изображение из профиля, биографию и URL его персонального Web-сайта. В ней также указано количество фотографий, размещенных пользователем в Instagram, и число наблюдаемых и наблюдающих пользователей. Результат выполнения листинга 2 показан на рисунке 2.

Рисунок 2. Извлечение профилей пользователей

Работа с автоканалом

Для доступа к оконечным точкам, фигурировавшим в двух предыдущих листингах, достаточно идентификатора пользователя. Однако в API Instagram есть и другие конечные точки, доступные только для запросов к API, подписанных по протоколу OAuth.

OAuth 2.0 ― это новая версия протокола OAuth 1.0. В отличие от OAuth 1.0, OAuth 2.0 (пока) не поддерживается средой Zend Framework, поэтому для обработки рабочего процесса OAuth 2.0 необходимо написать свой собственный код. Эта задача значительно упрощается библиотекой PHP-OAuth2 Пьеррика Чаррона и Аниса Бережье, которая предоставляется по лицензии GNU LGPL (см. ссылку в разделе Ресурсы). Библиотека PHP-OAuth2 делает введение поддержки OAuth 2.0 в собственное PHP-приложение относительно простым делом.

Для иллюстрации рассмотрим листинг 3, в котором библиотека PHP-OAuth2 используется для подключения к API Instagram, запроса доступа и отображения списка загруженных фотографий аутентифицированного пользователя, а также тех пользователей, за которыми наблюдает аутентифицированный пользователь (так называемый «автоканал» [self feed]). В этом примере используется метод API /users/self/feed.

Листинг 3. Извлечение автоканала

Первая часть листинга 3 — стандартный рабочий процесс OAuth 2.0, который безопасно перенаправляет пользователя на экран авторизации, а затем возвращает управление приложению, когда тот разрешил доступ. Обратите внимание, что маркер доступа OAuth 2.0, генерируемый этим сценарием, хранится в сеансе браузера, так что при последующих попытках доступа к защищенным оконечным точкам API авторизация не потребуется.

Параметр scope определяет область авторизации. В данном случае в дополнение к области по умолчанию запрашивается область relationships (отношения), потому что некоторые из примеров, приведенных в этой статье, демонстрируют способы изменения отношений между пользователями.

Маркер доступа OAuth 2.0, порожденный этим процессом, прикреплен к объекту клиента OAuth2, который затем применяется для запроса автоканала пользователя. JSON-ответ на этот запрос анализируется, как описано в первой части статьи, и динамически генерируется Web-страница с фотографиями аутентифицированного пользователя и тех, за кем он наблюдает. На рисунке 3 приведен пример такой страницы.

Рисунок 3. Отображение фотографий из автоканала

Поиск фотографий пользователя

В листинге 3 продемонстрирован автоканал пользователя — канал фотографий, загруженных пользователем и теми, за кем он наблюдает. Но что, если вас интересуют только фотографии определенного пользователя? Такой поиск тоже возможен, с помощью оконечной точки API /users/[user-id]/media/recent, которая возвращает канал доступа к последним фотографиям, загруженным определенным пользователем.

Загвоздка в том, что оконечная точка /users/[user-id]/media/recent принимает только идентификатор пользователя, поэтому, как и в листинге 2, нужно сначала найти нужного пользователя с помощью оконечной точки /users/search. Затем идентификатор соответствующего пользователя применяется для запроса к оконечной точке /users/[user-id]/media/recent. Листинг 4 иллюстрирует этот процесс.

Листинг 4. Поиск фотографий пользователя

Рисунок 4 демонстрирует результаты поиска.

Рисунок 4. Поиск фотографий пользователя

В листинге 4 ответ на запрос к оконечной точке /users/[user-id]/media/recent содержит набор фотографий, загруженных указанным пользователем. Ничего не стоит перебрать этот набор и для каждой фотографии вывести эскиз, основные метаданные, количество обращений и оценку.

Обратите внимание, что в листинге 4, а также в последующих примерах общий код рабочего процесса авторизации OAuth 2.0 хранится в отдельном файле начальной загрузки, который указан в верхней части каждого сценария. Это делается для уменьшения длины листингов в этой статье и удобочитаемости.

Проверка отношений пользователя

Как и другие социальные сети, Instagram позволяет пользователям наблюдать за другими пользователями. В API Instagram есть две оконечные точки для получения информации об отношениях пользователя: /users/[user-id]/follows и /users/[user-id]/followed-by. При указании пользователя эти оконечные точки возвращают список других пользователей, которые наблюдает за этим пользователем или за которыми наблюдает он. Листинг 5 иллюстрирует эти конечные точки в действии.

Листинг 5. Проверка отношений пользователя

Листинг 5 создает Web-форму, которая позволяет вводить имя пользователя Instagram. После отправки формы листинг 5 сначала обращается к оконечной точке API /users/search, чтобы найти идентификатор нужного пользователя, а затем внедряет этот идентификатор в запросы к оконечным точкам /users/[user-id]/follows и /users/[user-id]/followed-by. JSON-документы, полученные от этих оконечных точек, используются для отображения списков наблюдения, каждый из которых содержит фотографии из профилей пользователей, их псевдонимы и полные имена. Пример выходных данных приведен на рисунке 5.

Цукерберг рекомендует:  Создание Twitter Ticker при помощи jQuery
Рисунок 5. Отображение отношений пользователя

Редактирование отношений пользователя

Помимо предоставления информации об отношениях пользователя, API Instagram позволяет вносить изменения в эти отношения. Защищенная оконечная точка /users/[user-id]/relationship принимает POST-запросы на действия follow (наблюдать), unfollow (отменить наблюдение), block (блокировать), unblock (разблокировать), approve (одобрить) или deny (запретить) и выполняет эти действия для отношений между указанным пользователем и текущим авторизованным пользователем. Это позволяет, например, регулировать отношения наблюдения между пользователями прямо через API.


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

Листинг 6. Редактирование отношений пользователей

В листинге 6 сначала выполняется поиск пользователя по имени, извлекается соответствующий идентификатор пользователя Instagram, а затем генерируется запрос POST к оконечной точке /users/[user-id]/relationship с параметром действия follow, чтобы установить отношения наблюдения между авторизованным пользователем и целевым пользователем.

Применение сторонних библиотек (1)

До сих пор во всех примерах для доступа к оконечным точкам API и обработки ответов использовался HTTP-клиент. Однако те, кто не любит писать собственный код, будут рады узнать, что существуют также различные готовые PHP-библиотеки, предоставляющие функции для работы с API Instagram.

Одна из таких библиотек ― PHP Instagram API Галена Гровера, которая обеспечивает оболочку PHP 5.3+ для API Instagram (см. ссылку в разделе Ресурсы). Эта библиотека содержит набор классов, которые обеспечивают общие функциональные возможности, облегчающие работу с Instagram-объектами, такими как фотографии, пользователи, теги и комментарии. Рассмотрим листинг 7, в котором показано, как использовать эту библиотеку для получения наиболее популярных фотографий из Instagram.

Листинг 7. Получение популярных изображений с помощью библиотеки PHP Instagram API

Листинг 7 начинается с создания автозагрузчика, который автоматически загружает классы библиотеки по мере необходимости. Затем он инициализирует экземпляр класса Instagram, устанавливает идентификатор клиента и вызывает метод объекта getPopularMedia(), чтобы получить от Instagram список популярных фотографий. Метод getPopularMedia() возвращает объект MediaCollection с коллекцией медиаобъектов. Теперь легко перебрать эту коллекцию и получить подробную информацию о каждой фотографии для отображения на Web-странице. Результат показан на рисунке 6.

Рисунок 6. Получение популярных изображений

Библиотека PHP Instagram API поддерживает OAuth-запросы и содержит встроенные методы оболочки для защищенных оконечных точек API. Для иллюстрации рассмотрим листинг 8, в котором листинг 4 воссоздается с помощью библиотеки PHP Instagram API.

Листинг 8. Поиск фотографий пользователя с помощью библиотеки PHP Instagram API

Как видите, листинг 8 значительно короче и нагляднее, чем листинг 4. После реализации необходимого процесса OAuth он запрашивает имя пользователя, а затем применяет метод getUserByUsername() для получения сведений об объекте User. Объект User предоставляет объект getMedia(), который возвращает коллекцию последних фотографий, загруженных этим пользователем. Эту коллекцию можно обработать, чтобы вывести эскизы всех загруженных фотографий, как показано на рисунке 4.

Применение сторонних библиотек (2)

Другая библиотека, разработанная Кристианом Мецем, также предоставляет простой в применении PHP-класс для работы с API Instagram (см. ссылку в разделе Ресурсы). В листинге 9 приведен пример ее применения для получения популярных изображений из Instagram.

Листинг 9. Получение популярных изображений с помощью библиотеки Instagram-PHP-API

Листинг 9 начинается с загрузки файла класса, затем создается экземпляр объекта Instagram и с помощью метода getPopularMedia() этого объекта извлекается список популярных фотографий. Этот метод внутренне обращается к оконечной точке /media/popular, получает ответ JSON и расшифровывает его. Результирующий объект можно обработать для отображения списка популярных фото, что приведет к тому же результату, что и в листинге 7.

С помощью этой библиотеки также можно воссоздать листинг 8, как показано в листинге 10.

Листинг 10. Поиск фотографий по пользователю с помощью Instagram-PHP-API

Листинг 10, как и листинг 8, позволяет искать в Instagram фотографии определенных пользователей. Она начинается с вызова метода searchUser() объекта Instagram и передачи ему имени пользователя, указанного в Web-форме. Затем идентификатор пользователя из полученной записи пользователя передается в метод getUserMedia(), который возвращает список последних фотографий, загруженных этим пользователем.

Заключение

Как показывают эти примеры, API Instagram предоставляет полный набор оконечных точек для создания Web-приложений на языке PHP, работающих с фотографиями, хранящимися в службе Instagram. С помощью готовой PHP-библиотеки или написав свой собственный код, можно довольно легко получить доступ к профилям пользователей, их отношениям и фотографиям и собрать информацию из различных оконечных точек для создания специальных Web-приложений. Попробуйте сделать это самостоятельно.

Ресурсы для скачивания

Похожие темы

  • Оригинал статьи: Integrating PHP applications with Instagram, Part 2.
  • Интеграция PHP-приложений с порталом Instagram. Часть 1 (Викрам Васвани, developerWorks, январь 2013 г.): соединение PHP с API Instagram на основе REST для создания новаторских Web-приложений. В первой части этой статьи из двух частей рассматриваются основы использования API Instagram для поиска и извлечения фотографий вместе с соответствующими комментариями и оценками.
  • Instagram API Endpoints: о том, как заставить Instagram работать на себя.

  • Instagram developer console: создание клиента Instagram (требуется учетная запись Instagram).
  • Instagram Authentication: условия использования Instagram и другие сведения ― в документации Instagram для разработчиков.
  • Форумы разработчиков API Instagram: получайте поддержку и участвуйте в обсуждениях.
  • Компонент Zend_Http_Client: подробнее об этом простом интерфейсе для формирования запросов Hyper-Text Transfer Protocol (HTTP).
  • Спецификация OAuth 2.0: подробнее о способах авторизации Web-приложений и приложений для ПК, мобильных телефонов и бытовых устройств.
  • Zend Framework: загрузите эту популярную платформу для высокопроизводительных PHP-приложений.
  • Библиотека PHP OAuth 2.0: загрузите легкую PHP-оболочку для протокола OAuth 2.0 (на основе версии OAuth 2.0 Authorization Protocol draft-ietf-oauth-v2-15).
  • Библиотека PHP Instagram API (1): загрузите оболочку для API Instagram на основе PHP 5.3+.
  • Библиотека PHP Instagram API (2): загрузите простой в применении PHP-класс для обращения к API Instagram Instagram-PHP-API Кристиана Меца.
  • Другие статьи этого автора (Vikram Vaswani, developerWorks, с августа 2007 г. по настоящее время): статьи по XML, дополнительным API Google и другим технологиям.
  • Сертификация специалистов IBM по XML: как стать сертифицированным IBM разработчиком в области XML и смежных технологий.
  • developerWorks в Twitter: присоединяйтесь и следите за новостями портала developerWorks.

Комментарии

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

Работаем с Instagram API

LightWood

Moderator

Вроде лишь с пагинацией пришлось бы подразобраться, но там тоже обычно всё просто.

Пошел получать апи ключ (инструкция):

там впринципе 2-е ссылки. Тут просто авторизуемся с акка и регистрируем клиента.
https://www.instagram.com/developer/

Выясняю, что после регистрации мы попадаем в Sand box (песочница).
И дают нам доступ только к «Review Status», а чтобы получить доступ полный, мы должны запросить его и обосновать что, как, для чего и продемонстрировать.

В итоге просят все обосновать, и вроде им только выделенные красным типы объяснений подходят.

Я по-быстрому как-то заполнил, но меня дальше не пустили, без заполненного поля
Video Screencast URL:

А приложения, как такового у меня получается и нет и под те цели, под которые они готовы дать полный АПИ, я не попадаю.

Как-то жутко геморно, ради получения списка своих же подписчиков.
Попробовал выпарсить в итоге через веб, но у них там ограничения на 50 штук.
Ерунда какая-то.


Знает ли кто, какой-то образец, чего сказать и отправить на одобрение получения апи, чтобы дали без проблем?
Или как решить задачку с получением всех своих фолловеров?

Настройка API для Instagram

В этом записи я покажу как зарегистрировать свое приложение в Instamram и получить API ключи.

Внимание! Не так легко пройти модерацию в Instagram, как это например сделано в ВКонтакте. Они часто не принимают приложения и при всем при этом — приходится долго ждать. У вас должна быть везкая причина, чтобы убедить модераторов в том, что ваш сайт приносит пользу сообществу. Подробнее можно почитать тут.

  • Зайдите в Developer Signup («Регистрация разработчика»
  • Укажите все требуемые поля (ниже представлен перевод, но вы так же можете использовать переводчик, например, Google)
  • Website — веб-сайт
  • Phone number — телефонный номер
  • What do you want to build with the API? — Для чего вы хотите использовать API?
  • Зайдите на Manage Clients («Управление клиентами»)
  • Нажмите кнопку «Register a New Client» («Зарегистрировать нового клиента»)
  • Укажите все требоваемые данные вашего сайта:
    • Application Name — название приложения/сайта
    • Description — описание проекта, сайта
    • Company Name — название компании, в данном случае сайта
    • Website URL — ссылка на сайт
    • Valid redirect URIs — укажите «Callback URL» ссылку из плагина
    • 1. Открыть хром
    • 2. Установить вот это приложение https://chrome.google.com/webstore/detail/disable-content-security/ieelmcmcagommplceebfedjlakkhpden?hl=en
    • 3. После установки снова зайти на страницу настроек в самом низу страницы должна появиться капча
    • 4. Попробовать подтвердить капчу и сохранить форму снова
  • Найдите ваш сайт и нажмите «Manage» («Управление»)
  • Скопируйте «Client ID» и «Client Secret»
  • И вставьте внутри плагина
  • Обратите внимание на «Client Status» («Статус клиента»): указано «Sandbox Mode» («Режим песочницы») — это означает, что ваш сайт находится в режиме тестирования. Статус поменяется на автивеный посое того, как Instagram проверит ваш сайт.

    Работа с API-интерфейсами Instagram (JSON + PHP)

    Я новичок в PHP, и я не могу понять, как работать с API-интерфейсами Instagram, чтобы (например) извлечь список ссылок на изображения стандартного разрешения по последним 3 элементам, опубликованным user_id 3.

    Цукерберг рекомендует:  Unity 5 - Игра на unity

    Вот что я создал до сих пор:

    Результат – пустая страница, хотя .. вы можете мне помочь?

    Вам нужно эхо или сделать что-то с возвращенными данными (также у вас есть rouge $ перед вашей функцией json_decode)


    Попробуй это:

    Если вы хотите проверить его пустое, и если оно тогда не отображается, но также хотите добавить на него строку, если она установлена, вы будете делать что-то вроде:

    Затем используйте $location для эха, где вы хотите.

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

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

    Он построен специально для WordPress с небольшим изменением размера изображения, которое может быть использовано в любом приложении PHP.

    Welp, Это работало неделю назад, но теперь это дает мне ошибку PHP:

    «Сообщение: попытка получить свойство не объекта»

    в строке с оператором foreach: foreach ($jsonData->data as $key=>$value)

    Оказывается, мой канал JSON был фактически поврежден, подписи к некоторым из моих instagrams отсутствовали, поэтому мне пришлось добавить оператор if empty. Теперь я использую другой метод, любопытный своими мыслями, отлично работает!

    Работа с API-интерфейсами Instagram (JSON + PHP)

    Я новичок в PHP, и я не могу понять, как работать с API-интерфейсами Instagram, чтобы (например) извлечь список ссылок на изображения стандартного разрешения по последним 3 элементам, опубликованным user_id 3.

    Вот что я создал до сих пор:

    Результат – пустая страница, хотя .. вы можете мне помочь?

    Вам нужно эхо или сделать что-то с возвращенными данными (также у вас есть rouge $ перед вашей функцией json_decode)

    Попробуй это:

    Если вы хотите проверить его пустое, и если оно тогда не отображается, но также хотите добавить на него строку, если она установлена, вы будете делать что-то вроде:

    Затем используйте $location для эха, где вы хотите.

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

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

    Он построен специально для WordPress с небольшим изменением размера изображения, которое может быть использовано в любом приложении PHP.

    Welp, Это работало неделю назад, но теперь это дает мне ошибку PHP:

    «Сообщение: попытка получить свойство не объекта»

    в строке с оператором foreach: foreach ($jsonData->data as $key=>$value)

    Оказывается, мой канал JSON был фактически поврежден, подписи к некоторым из моих instagrams отсутствовали, поэтому мне пришлось добавить оператор if empty. Теперь я использую другой метод, любопытный своими мыслями, отлично работает!

    Выводим фото из Инстаграм через JavaScript API: по > 30 октября 2015 / API соц сетей, JavaScript, jQuery


    Когда-то очень давно (более года) назад я публиковал пост про работу с API Инстаграм при помощи PHP.

    Теперь же я собираюсь выпустить серию статей по работе с API Инсты.

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

    Прежде всего хочу сказать, что во всех примерах вам понадобится Access Token — получить его легко и просто, смотрите мою инструкцию здесь.

    И ещё кое-что — в соответствии с изменениями в API Инстаграм, неавторизованные приложения (песочница) имеют доступ только к последним 20 фото/видео своего собственного пользователя! Хотите избежать этих ограничений? У вас есть два выхода: отправить своё приложение на аппрув, либо забить.

    1. По ID пользователя

    Итак, сразу говорю, что я работаю с jQuery и поэтому все примеры будут основываться на нём. Это также само собой подразумевает, что потребуется два подготовительных шага, о существовании которых некоторые из читающих эту статью могу не знать:

    1. У вас должна быть подключена библиотека jQuery.
    2. Код из последующих примеров нужно вставить в какое-либо событие, например событие при загрузке страницы сайта:

    И наконец, сам пример:

    2. По имени пользователя

    Конечно, сейчас существует куча сервисов и для того, чтобы узнать ID того или иного пользователя, достаточно лишь нажать кнопку.

    Но согласитесь, гораздо интереснее, если всё это будет делаться автоматически. А если у вас своя программа/плагин/приложение, которое вы пишете для людей, тогда это просто необходимое условие.

    Можно ли вывести фото по тегу (тегам) какого-то конкретного пользователя?

    Самое главное, что вам нужно знать, то что для этого не потребуется ничего сверхестественного, достаточно лишь открыть документацию API Инстаграмма и поразбираться в массивах данных JavaScript.

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

    3. По тегу

    Второй по востребованности и популярности функционал — это вывод фотографий из инсты по тегу. Делается ещё проще, чем по имени пользователя.

    Можно ли вывести фото по нескольким тегам?

    Можно. И опять-таки, я не буду загружать этот пост длинным кодом и просто порекомендую скачать мой плагин — если не для использования (возможно у вас не WordPress), то для ознакомления.

    Любые вопросы оставляйте пожалуйста в комментариях, постараюсь ответить каждому.

    Смотрите также

    Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2020 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

    Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

    • 1 По ID пользователя
    • 2 По имени пользователя
      • 2.1 По тегу пользователя
    • 3 По тегу
      • 3.1 По нескольким тегам

    Комментарии 4

    Приветы. Я думаю ты в курсе событий в api инстаграма.

    Этот код и код из прошлой статьи не будет работать с новыми приложениями (созданными после 17 ноября 2015) , поскольку теперь нужно добавлять access_token к get запросам.

    Более того, нужно подбирать токен с корректным scope.

    А что ещё хуже — приложение теперь работает в режиме песочницы и ты можешь играться только с фото, лайками и комментариями из своего профиля или другого пользователя твоей песочницы.

    Простыми словами халява закончилась, ведь пройти approve и выйти в полнофункциональное приложение стало очень трудно.

    Да и старые приложения (той плагин тоже?) проработают в таром режиме всего до июня 2020 и будцт переведены в песочницу.

    Что ты про это думаешь и как теперь быть?

    Наверное я тебя разочарую с ответами.

    Нет, я не в курсе ожидаемых событий.
    Если вдруг что-то перестанет работать, выход найдётся. Так было всегда.

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

    Ну что же, вот уже 16 июня, и всё работает. Я же говорил, выход найдётся ��

    интеграция api instagram чтобы узнать сколько у юзера подписчеков

    можете подсказать как сделать интеграцию с апи инстаграмм на питоне для того чтобы узнать сколько у юзера подписчеков и на кого он подписан

    1 Ответы

    Официального API нормального нет. Там нужно разрешения получить. Есть неофициальное.
    https://github.com/timgrossmann/InstaPy

    Подпишись на канал!

    Новые видеоуроки, книги и полезные статьи для python программистов!

    Понравилась статья? Поделиться с друзьями:
    Все языки программирования для начинающих