API Instagram: как я могу получить все изображения пользователя?

Я пытаюсь использовать Instagram API для создания галереи со всеми фотографиями пользователя в Instagram. Но у меня всего около 33 фотографий в галерее. Не могли бы вы мне помочь? Как я могу это исправить?

   $response = file_get_contents('https://api.instagram.com/v1/users/' . $target . '/media/recent?access_token=' . $_SESSION['instagram_token'] . '&count=-1');

person Denis Skorikov    schedule 05.12.2014    source источник
comment
Какую проблему вы испытываете?   -  person gareththegeek    schedule 05.12.2014
comment
Возможный дубликат Instagram API: как получить все пользовательские медиафайлы?   -  person Zach Saucier    schedule 19.07.2016


Ответы (3)


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

Однако вы можете использовать разбиение на страницы; см. следующий вопрос/ответ для информации:

Instagram API: как получить все пользовательские медиафайлы?

Я полагаю, вы можете прочитать 20 за запрос, затем найти самый низкий идентификатор результата и использовать его в качестве максимального идентификатора следующего запроса.

Request 1 (no max_id)
Id 100
Id 99
..
Id 81

Request 2 (max_id=81)
Id 80
.. 
Id 61

Request 3 (max_id=61)
Id 60
..
Id 41

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

person havardhu    schedule 05.12.2014
comment
это не работает. Результат такой же, как и при использовании предоставленной нумерации страниц. - person thedjaney; 29.01.2016

Каждый вызов API будет возвращать максимум 20 фотографий, вы должны использовать pagination.url в ответе API, чтобы сделать еще один вызов API, чтобы получить следующие 20 фотографий и так далее.

https://api.instagram.com/v1/users/3/media/recent/?access_token=ACCESS-TOKEN
person krisrak    schedule 05.12.2014

API Instagram накладывает молчаливое, недокументированное ограничение на количество возвращаемых результатов. Даже если вы передадите count выше, чем 33, будет возвращено не более 33 результатов.

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

Не стесняйтесь вносить свой вклад, отправляя запросы на включение! (Возможно, вы захотите перевести то, что я сделал, в код PHP, чтобы вы могли безопасно использовать токен доступа)

person d4nyll    schedule 23.01.2015