Несколько примеров использования функции wp_remote_get() для подключения к API Инстаграм

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

Ранее я уже писал посты про подключение к API Инстаграм через jQuery и через PHP, но мы, как-никак используем WordPress и почему бы не использовать стандартные функции движка, к тому же юзаются они ну очень просто.

Итак, уже из названия функции понятно, что она использует HTTP GET метод, а это значит, что с её помощью мы можем подключиться только к тем ендпойнтам API, которые поддерживают GET-запросы, но так как сейчас я не хочу рассматривать примеры, которые требуют аппрув для приложения, то я вообще ограничусь лишь двумя методами, на скриншоте ниже наглядно видно, о чём я говорю.

Запросы API Инстаграм доступные для использования в песочнице.

Напоследок добавлю, что как ни крути, нам всё равно нужно получать токен для подключения. К счастью делается это не трудно, нужно лишь иметь аккаунт в Инстаграм. Этот процесс довольно подробно описан здесь.

Пример 1. Получение информации профиля пользователя Инстаграм

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

// Сразу подключаемся к API
$cn = wp_remote_get( "https://api.instagram.com/v1/users/self/?access_token=ТОКЕН_УКАЗЫВАЕМ_ЗДЕСЬ" );
 
// Ответ Инстаграма закодирован в JSON, так что раскодируем его
$instagram = json_decode( wp_remote_retrieve_body( $cn ) );
 
// Ну и если ответ сервера 200 OK, то можно вывести что-нибудь
if( wp_remote_retrieve_response_code( $cn ) == 200 ) {
    echo '
    <img src="' . $instagram->data->profile_picture . '" />
    <p>Имя пользователя: ' . $instagram->data->username . '</p>
    <p>ID: ' . $instagram->data->id . '</p>
    <p>Био: ' . $instagram->data->bio . '</p>
    <p>Сайт: ' . $instagram->data->website . '</p>
    <p>Полное имя: ' . $instagram->data->full_name . '</p>
    <p>Публикаций: ' . $instagram->data->counts->media . '</p>
    <p>Подписчиков: ' . $instagram->data->counts->followed_by . '</p>
    <p>Подписок: ' . $instagram->data->counts->follows . '</p>
    ';
}

Проще простого, верно ведь?

Пример 2. Получение и вывод фото / видео конкретного пользователя Инстаграм

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

$cn = wp_remote_get( "https://api.instagram.com/v1/users/self/media/recent/?access_token=ТОКЕН_УКАЗЫВАЕМ_ЗДЕСЬ" );
 
// Ответ Инстаграма закодирован в JSON, так что раскодируем его
$instagram = json_decode( wp_remote_retrieve_body( $cn ) );
 
// Ну и если ответ сервера 200 OK, то можно вывести что-нибудь
if( wp_remote_retrieve_response_code( $cn ) == 200 ) {
 
    foreach( $instagram->data as $photo ) {
 
        echo '<a href="' . $photo->link . '" title="' . $photo->caption->text . '">
            <img src="' . $photo->images->standard_resolution->url . '" />
              </a>';
        // все доступные параметры можно найти в документации Инстаграм https://www.instagram.com/developer/endpoints/users/#get_users_media_recent
        // либо print_r( $photo );
 
    }
 
}

Тоже мега-простой пример, разве нет?

Можно ли сейчас получить фото из Инстаграм по тегу или по местоположению?

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

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

Источник: misha.blog

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

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

%d такие блоггеры, как: