Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. APIs
Code

Начало работы с API-интерфейсом Instagram: конечные точки медиа

by
Difficulty:IntermediateLength:MediumLanguages:

Russian (Pусский) translation by Masha Kolesnikova (you can also view the original English article)

Final product image
What You'll Be Creating

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

Вы можете загрузить код для каждого эпизода, используя ссылку репозитория GitHub на боковой панели. Вы также можете быть заинтересованы в моей серии из двух частей Tuts +, поиск потенциальных свидетелей сцены преступления с помощью социальных медиа-API.

Код для этих руководств написан на PHP с использованием Yii Framework. Вы можете узнать больше о Yii во Введении в Yii Framework (Tuts +) и в Программировании с Yii2 (Tuts +). Вы также можете легко адаптировать фрагменты кода для своего собственного приложения PHP.

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

Начнем с регистрации в качестве разработчика с Instagram.

Начинаем

Чтобы начать работу, зайдите на страницу API Instagram для разработчиков и нажмите «Зарегистрировать свое приложение»:

Instagram Hello Developers

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

Instagram Developer Signup

Затем вы можете зарегистрировать новое приложение для получения идентификатора клиента:

Instagram New Client Registration

На панели «Управление клиентами» вы увидите свой идентификатор клиента и клиентский секрет, поэтому обратите внимание на следующее:

Instagram Manage Clients

Использование конечных точек медиа

Как API-интерфейсы веб-сервисов, API Instagram является надежным, и по моему опыту работает очень хорошо. Instagram предлагает несколько конечных точек API:

Instagram API Documentation Overview and Endpoints

В этом уроке мы сосредоточимся на конечных точках Media:

Instagram API Media Endpoints

С конечными точками Media вы можете получать информацию о фотографии или видео Instagram, ссылаясь на его идентификатор или короткий код из его URL-адреса, например. 0EyZ53Ja9X от https://instagram.com/p/0EyZ53Ja9X. Api также предоставляет возможности геопоиска для поиска медиа, размещенных с определенного времени и места, как мы это делали в разделе Определение потенциальных свидетелей сцены с помощью API социальных медиа. И, наконец, Api позволяет вам получать популярные, трендовые сообщения Instagram.

Консоль API

Чтобы помочь вам начать работу и отладку, Instagram имеет консоль API на базе Apigee:

Instagram API Console powered by Apigee

Вы можете опробовать запросы с конечными точками Media с помощью консоли API. Вот пример результата для media/popular:

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

Перейдем к установке нашей примерной кодовой базы и ее настройке для работы с вашим клиентским приложением Instagram.

Установка кода

В этой серии я продолжу работу над кодовой базой Eyewitness из поиска потенциальных свидетелей сцены преступления с помощью социальных медиа-API. Вы можете клонировать репозиторий GitHub, расположенный на боковой панели, для запуска нашего образца кода.

Вам нужно будет настроить локальную конфигурацию Apache. Я использую MAMP, поэтому она выглядит примерно так:

Вам нужно локально создать базу данных. Я использую PHPMyAdmin для этого:

Create your Eyewitness database

Затем я создаю файл инициализации в /var/secure/eyew.ini с моими учетными данными базы данных и идентификаторами и ключами Instagram. Недавно я описал этот процесс в другом учебнике Tuts +: Защита ваших ключей от GitHub.

Мой файл ini выглядит так:

Обновите свой Composer и его библиотеки:

Затем инициализируйте нашу базу данных. Первая миграция устанавливает пользовательские таблицы для нашего Yii2-user через расширение разработчика Dmeroff, а вторая создает наши таблицы для приложения:

Опять же, вы можете узнать больше о настройке приложения Yii Framework в серии Программирование с Yii2 на Tuts +.

Вот схема MySQL для нашей таблицы изображений Instagram - мы называем ее таблицей Gram. Мы будем использовать ее для хранения результатов геопоиска.

Главная страница

Я переименовал приложение в «Instapi», сокращение от Instagram API.

Посмотрите, что вы увидите при посещении сайта в своем браузере:

Instagram API Sample Code Home Page

Выполнение медиа-поиска

Чтобы реализовать поиск в медиа в нашем приложении Instapi, я использую пакет Instagram PHP от Galen Grover.

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

Во-первых, давайте проведем поиск media/popular. Мы будем запрашивать API и отображать результаты в таблице.

Я создал действие popular в GramController.php:

Оно вызывает searchPopular() в модели Gram.php:

В /views/gram/popular.php мы настроили структуру таблицы HTML:

и включаем частичный вид _item.php для отображения отдельных результатов:

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

Instagram Media Popular Results Table

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

Я связал идентификатор носителя Instagram в первом столбце с действием контроллера, которое вызывает конечную точку media, которая отдает нам дополнительную информацию:

Вот функция поиска в модели Instagram:

Вот скриншот данных, выведенных на экран:

Instagram API Media Information Dumped to Screen

Очевидно, вы могли бы использовать и хранить эту информацию.

Поиск средств массовой информации со времени и места

Теперь давайте искать изображения с определенного времени и места. В этом примере я рассмотрю пример нашего Eyewitness.

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

Используя Google Maps, я могу получить широту и долготу GPS для Дика. Это 47.6195 -122.321.

Dicks Drive In Broadway Seattle GPS in Google Maps

Из статьи я узнал, что производство закрывается в 1 час ночи. Я собираюсь выбрать время начала 10 вечера и продолжительность 3 часа.

Create a Moment

Instagram принимает время начала в GMT, поэтому я жестко запрограммировал восьмичасовую корректировку изменения времени из своего часового пояса (PST). Возможно, вам придется изменить это в коде.

Для поиска в Instagram, просто нажмите на значок камеры ниже:

The Moments Index Grid

Фактический поиск довольно прост: $instagram->searchMedia( $this->latitude, $this->longitude,$params );

Результаты сохраняются в таблице Gram, которую мы можем затем просмотреть:

Вот первая страница результатов моего поиска. Вы можете увидеть толпы и лимузин Кадиллака Макклемора.

Macklemore Search Results

Затем, на третьей странице, пользователь Instagram, с именем Джошуа Льюис, снял Макклеро, выходящего из Cadillac:

More Macklemore Search Results

Вот Макклемор:

Macklemore Arrives on Instagram

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

Что дальше?

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

В то же время, пожалуйста, не стесняйтесь оставлять свои вопросы и комментарии ниже. Вы также можете связаться со мной в Twitter @reifman или отправить мне электронное письмо. Вы также можете просмотреть мою страницу инструктора Tuts +, чтобы увидеть другие учебники, которые я написал.

Ссылки по теме

Изображение из превью модифицировано из результата, который был получен в нашем поиске API.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.