Я пытаюсь поместить последние пользовательские СМИ в Instagram на боковую панель. Я пытаюсь использовать Instagram API для получения медиа.
http://instagram.com/developer/endpoints/users/
Документация говорит GET https://api.instagram.com/v1/users/<user-id>/media/recent/
, но она говорит, чтобы передать токен доступа OAuth. Токен доступа представляет собой право действовать от имени пользователя. Я не хочу, чтобы пользователи заходили в Instagram, чтобы увидеть это на боковой панели. Им даже не нужно иметь аккаунт в Instagram.
Например, я могу зайти на http://instagram.com/thebrainscoop без входа в Instagram и посмотреть фотографии. Я хочу сделать это через API.
В API Instagram запросы без аутентификации проходят client_id
вместо access_token
. Если я попробую это, я получу:
{
"meta":{
"error_type":"OAuthParameterException",
"code":400,
"error_message":"\"access_token\" URL parameter missing. This OAuth request requires an \"access_token\" URL parameter."
}
}
Итак, это невозможно? Нет ли способа получить последние (общедоступные) медиафайлы пользователя, не попросив пользователя сначала войти в учетную запись Instagram через OAuth?
источник
Ответы:
Это поздно, но стоит, если это кому-то поможет, поскольку я не видел этого в документации Instagram.
Чтобы выполнить GET
https://api.instagram.com/v1/users/<user-id>/media/recent/
(в настоящее время), вам на самом деле не нужен токен доступа OAuth.Вы можете выполнить
https://api.instagram.com/v1/users/[USER ID]/media/recent/?client_id=[CLIENT ID]
[ИД КЛИЕНТА] будет действительным идентификатором клиента, зарегистрированным в приложении через управление клиентами (независимо от пользователя). Вы можете получить [USER ID] от имени пользователя, выполнив запрос поиска пользователей GET:
https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]
источник
Вы можете скачать любой Instagram фид пользователя фото в формате JSON с использованием
?__a=1
рядом с целевой страницей адреса , как это . Нет необходимости получать идентификатор пользователя или регистрировать приложение, нет токенов, нет oAuth.min_id
иmax_id
переменные могут быть использованы для нумерации страниц, вот примерYQL
может не работать здесь внутри фрагментированного iframe, поэтому вы всегда можете проверить это вручную в консоли YQLОБНОВЛЕНИЕ АПРЕЛЯ 2018: После последних обновлений Instagram вы не можете сделать это на стороне клиента (javascript), потому что пользовательские заголовки для подписанного запроса не могут быть установлены с помощью javascript из-за
CORS
Access-Control-Allow-Headers
ограничений. Это еще можно сделать это с помощьюphp
или любого другого метода на стороне сервера при правильной подписи на основеrhx_gis
,csrf_token
и параметры запроса. Вы можете прочитать больше об этом здесь .ОБНОВЛЕНИЕ ЯНВАРЯ 2019: YQL вышел на пенсию, поэтому проверьте мое последнее обновление с Google Image Proxy в качестве
CORS
прокси для страницы Instagram! Тогда только отрицательный момент - нумерация страниц недоступна при использовании этого метода.PHP
решение:источник
11.11.2017
Поскольку Instagram изменил способ предоставления этих данных, ни один из вышеуказанных методов в настоящее время не работает. Вот новый способ получить медиа пользователя:
GET
https://instagram.com/graphql/query/?query_id=17888483320059182&variables={"id":"1951415043","first":20,"after":null}
Где:
query_id
- постоянное значение: 17888483320059182 (обратите внимание, что оно может быть изменено в будущем).id
- идентификатор пользователя. Это может прийти со списком пользователей. Для получения списка пользователей вы можете использовать следующий запрос:GET https://www.instagram.com/web/search/topsearch/?context=blended&query=YOUR_QUERY
first
- количество предметов для получения.after
- идентификатор последнего элемента, если вы хотите получить элементы с этим идентификатором.источник
query_id
является постоянной ценностью. Это означает, что это всегда 17888483320059182 (по крайней мере, если Instagram не изменит его). id пользователя - это id пользователя (немного отредактировал мой ответ)Я смог получить самые последние медиа пользователя, используя следующий API без аутентификации (включая описание, лайки, количество комментариев).
https://www.instagram.com/apple/?__a=1
Например
источник
На прошлой неделе в Instagram отключены
/media/
URL-адреса, я реализовал обходной путь, который пока работает довольно хорошо.Чтобы решить все проблемы в этой теме, я написал это: https://github.com/whizzzkid/instagram-reverse-proxy
Он предоставляет все общедоступные данные Instagram, используя следующие конечные точки:
Получите пользовательский носитель:
Получите пользовательский носитель с ограниченным количеством:
Используйте JSONP:
Прокси-API также добавляет URL-адреса следующей и предыдущей страниц к ответу, поэтому вам не нужно рассчитывать это с вашей стороны.
Надеюсь вам, ребята, нравится это!
Спасибо @ 350D за это :)
источник
API Instagram требует аутентификации пользователя через OAuth для доступа к последней конечной точке мультимедиа для пользователя. Похоже, сейчас нет другого способа получить все медиа для пользователя.
источник
Если вы ищете способ сгенерировать токен доступа для использования в одной учетной записи, вы можете попробовать это -> https://coderwall.com/p/cfgneq .
Мне нужен был способ использовать API Instagram, чтобы получить все последние медиа для конкретной учетной записи.
источник
Вот рельсы решения. Это своего рода задняя дверь, которая на самом деле является входной дверью.
Возвращаемый объект варьируется в зависимости от того, является ли он поиском пользователя или поиском по тегу. Я получаю данные, как это:
Затем я получаю еще одну страницу результатов, создавая URL следующим образом:
источник
Благодаря постоянно меняющейся (и ужасающе разработанной) схеме API в Instagram большинство вышеперечисленных больше не будет работать с апреля 2018 года.
Вот последний
https://www.instagram.com/username/?__a=1
способ доступа к отдельным данным поста, если вы запрашиваете их API напрямую, используя метод.Предполагая, что вы вернули
JSON
данные,$data
вы можете просмотреть каждый результат, используя следующие примеры путей:Главными в этом недавнем изменении были
graphql
иedge_owner_to_timeline_media
.Похоже, что в DEC 2018 они отключат доступ к этому API для некоммерческих клиентов, поэтому максимально используйте его, пока можете.
Надеюсь, это кому-нибудь поможет;)
источник
JSFiddle
Javascript:
HTML:
CSS:
источник
Просто хочу добавить к @ 350D ответ, так как мне было трудно понять.
Моя логика в коде следующая:
При первом вызове API я звоню только
https://www.instagram.com/_vull_ /media/
. Когда я получаю ответ, я проверяю логическое значениеmore_available
. Если это правда, я получаю последнее фото из массива, получаю его идентификатор и затем снова вызываю Instagram API, но на этот разhttps://www.instagram.com/_vull_/media/?max_id=1400286183132701451_1642962433
.Здесь важно знать, этот идентификатор является идентификатором последней картинки в массиве. Поэтому, запрашивая maxId с последним идентификатором картинки в массиве, вы получите следующие 20 картинок и так далее.
Надеюсь это прояснит.
источник
Если вы обойдете Oauth, вы, вероятно, не узнаете, кто он такой. При этом есть несколько способов получить изображения Instagram без аутентификации.
API Instagram позволяет просматривать самые популярные изображения пользователя без аутентификации. Используя следующую конечную точку: вот ссылка
Instagram предоставляет RSS-каналы для тегов на этом .
Страницы пользователей Instagram общедоступны, поэтому вы можете использовать PHP с CURL, чтобы получить их страницу, и DOM-анализатор, чтобы искать в html теги изображений, которые вы хотите.
источник
Еще один трюк, поиск фотографий по хэштегам:
Куда:
query_hash
- постоянное значение (я верю его хеш 17888483320059182, может быть изменено в будущем)tag_name
- Название говорит само за себяfirst
- количество элементов, которые нужно получить (я не знаю почему, но это значение не работает должным образом. Фактическое количество возвращаемых фотографий немного больше, чем значение, умноженное на 4,5 (около 110 для значения 25 и около 460 для значение 100))after
- идентификатор последнего элемента, если вы хотите получить элементы с этим идентификатором. Значениеend_cursor
ответа JSON можно использовать здесь.источник
Ну, так как
/?__a=1
к настоящему времени перестали работать, лучше использовать curl и проанализировать страницу instagram, как написано в этом ответе: Сгенерировать токен доступа Instagram API, без необходимости входа в систему?источник
Если вы хотите искать пользователей, не имея clientID и токена доступа:
1: Если вы хотите найти всех пользователей, имена которых похожи на ваше поисковое слово:
замените SeachName на текст, который вы хотите найти:
https://www.instagram.com/web/search/topsearch/?query=SearchName
2: если вы хотите найти точно такое же имя пользователя:
замените UserName на желаемое имя для поиска:
источник
Вы можете использовать этот API для получения общедоступной информации о пользователе Instagram:
https://api.lityapp.com/instagrams/thebrainscoop?limit=2.
Если вы не установите параметр limit, посты будут ограничены 12 по умолчанию.
Это API был сделан в SpringBoot с HtmlUnit, как вы можете видеть в коде:
Это пример ответа:
источник
Мне действительно нужна была эта функция, но для Wordpress. Я вписался, и это сработало отлично
источник
Приведенный ниже код nodejs удаляет популярные изображения со страницы Instagram. Функция «ScrapeInstagramPage» заботится о эффекте пост старения.
Попробуй здесь
Пример: для заданного URL « https://www.instagram.com/dress_blouse_designer/ » можно вызвать функцию
источник
Это работает с использованием простого вызова ajax и итерации путей к изображениям.
источник
Вот скрипт php, который загружает изображения и создает HTML-файл со ссылками на изображения. Кредит 350D за версию php, это только что проработано. Я бы посоветовал поставить это на постоянную работу и увольнять как угодно часто. Проверено работает по состоянию на май 2019 года .
источник