Instagram Graph API: URL-адрес эскиза мультимедиа

Я использую Instagram Graph API в бизнес-аккаунте, и почти все работает нормально. Я создал порт WordPress для SDK Facebook, и функция, которая извлекает элементы мультимедиа, выглядит следующим образом (часть класса, объект $fb уже аутентифицирован с использованием default_access_token в конструкторе класса):

public function get_media( $business_account_id = '', $limit = 15 ) {
    $limit = absint( $limit );

    try {
        $response = $this->fb->get( "/{$business_account_id}?fields=media.limit({$limit}){media_url,caption,thumbnail_url,permalink}" );
        return $response->getDecodedBody();
    } catch ( \Facebook\Exceptions\FacebookResponseException $e ) {
        return $e->getMessage();
    } catch ( \Facebook\Exceptions\FacebookSDKException $e ) {
        return $e->getMessage();
    }
}

Как видите, я запрашиваю следующие поля: media_url, caption, thumbnail_url и permalink. API отвечает всеми полями, кроме thumbnail_url:

array(2) {
    ["media"]=>
    array(2) {
        ["data"]=>
        array(15) {
            [0]=>
            array(4) {
                ["media_url"]=>
                string(91) "https://scontent.xx.fbcdn.net/..."
                ["caption"]=>
                string(356) "[...]"
                ["permalink"]=>
                string(40) "https://www.instagram.com/p/.../"
                ["id"]=>
                string(17) "..."
            }
            ...
        }
        ["paging"]=>
        array(2) {
            ["cursors"]=>
            array(2) {
                ["before"]=>
                string(123) "..."
                ["after"]=>
                string(122) "..."
            }
            ["next"]=>
            string(438) "https://graph.facebook.com/v2.10/..."
        }
    }
    ["id"]=>
    string(17) "..."
}

Я получаю тот же ответ, используя Graph API Explorer, что заставляет меня думать, что это что-то связано с мое приложение, возможно, разрешения (в настоящее время manage_pages и instagram_basic), особая настройка или ошибка (я так не думаю, но на всякий случай ...).

Что мне не хватает?


person Mithc    schedule 13.09.2017    source источник
comment
Вы можете сказать мне, как получить business_account_id?   -  person Muhammad Faisal Iqbal    schedule 07.03.2018


Ответы (1)


Обновление 2021

Документы обновлены, и старая ссылка больше не работает; вот новая ссылка:

https://developers.facebook.com/docs/instagram-basic-display-api/reference/media/#fields

Формулировка была обновлена, чтобы указать, что поле thumbnail_url доступно только на VIDEO Media.


Оригинальный ответ

Похоже, что thumbnail_url доступен только для объектов видео IG Media . Мое решение - обрабатывать изображения с помощью PHP, чтобы генерировать версии мультимедийных объектов с измененным размером и кэшировать их, чтобы у меня не было их регенерации при каждом запросе.

person Mithc    schedule 18.09.2017
comment
Как вы обрабатывали изображения с помощью PHP? Я получаю 403, когда использую PHP для доступа к изображениям. - person robrecord; 17.04.2019
comment
Поскольку моим вариантом использования является WordPress, я использовал media_sideload_image(). Если вы работаете с чем-то другим, вы можете попробовать сохранять изображения с URL, настроив От allow_url_fopen до true. - person Mithc; 18.04.2019
comment
Спасибо! ????????Мой вариант использования тоже WP. - person robrecord; 04.05.2019
comment
Это решение для Instagram Basic Display API. Есть ли решение для Instagram Graph API? - person Sean H; 12.02.2021