Ответ 1
Ответы на ваши вопросы:
Для некоторого обходного пути существует web-API
: cronjobs обновляет все ваши ссылки и записывает проанализированные данные в вашу базу данных. Достоинства: нет потребностей API applications
. Недостатки: иногда изменения веб-API (запросы и/или ответы).
Вы также можете автоматически регистрировать приложение для каждого клиента, добавлять его в БД, подписываться на обновления в режиме реального времени. А затем получите обновления.
Невозможно использовать access-token
вместо CLIENT-ID
и CLIENT-SECRET
.
Просто помните, что "Real-time" photo updates
на самом деле не real-time
(балансировочная система и т.д.) (из документации: You should build your system to accept multiple update objects per payload
), поэтому достаточно обновлений в течение 1 минуты.
UPD
Может быть, помощь, может быть, вы уже знаете этот серый способ ускорения.
Вы можете использовать прямую ссылку для получения носителя по местоположению с помощью web-API
. Это проще всего. Все, что вам нужно, это csrftoken
из файлов cookie для генерации XHR request
. csrftoken
может быть от неавторизованного пользователя. Подробную информацию о request
можно найти на вкладке Network
в Google Chrome.
Простой пример: POST
запрос к https://instagram.com/query/
с параметрами q
и ref
(в примере их значения urldecoded для объяснения):
q=ig_location(237630908){media.after(20000000000000000000000,2){nodes{id,display_src,thumbnail_src}}}&ref=locations::show
Content-type
должен быть application/x-www-form-urlencoded; charset=UTF-8
.
Веб-заголовки для XHR request
:
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Accept: */*
Accept-Language: en-US;q=0.6,en;q=0.4
Referer: https://instagram.com/explore/locations/237630908/
Origin: https://instagram.com
X-Instagram-AJAX: 1
X-Requested-With: XMLHttpRequest
X-CSRFToken: e4e1e1eddd67b2b50b6d8ae7b49e01c0
Cookie: csrftoken=e4e1e1eddd67b2b50b6d8ae7b49e01c0
Content-type: application/x-www-form-urlencoded; charset=UTF-8
(csrftoken
в примере с заголовками рандомизируется, не используйте его)
Не используйте его слишком часто, Instagram когда-то отключает некоторую веб-функцию по IP, попробуйте изменения csrftoken
.
И ответ:
{
status: "ok",
media: {
nodes: [
{
thumbnail_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/12142408_1499221190404489_557984803_n.jpg",
id: "1104470761628620590",
display_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/12142408_1499221190404489_557984803_n.jpg"
},
{
thumbnail_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/12139611_1663826773904632_2063764196_n.jpg",
id: "1102282973026047789",
display_src: "https://scontent-frt3-1.cdninstagram.com/hphotos-xaf1/t51.2885-15/e35/12139611_1663826773904632_2063764196_n.jpg"
}
]
}
}