В этом документе описано, как отправить вызов к API Graph для Instagram через приложение и получить медиаобъекты бизнес-аккаунта или аккаунта автора Instagram. Предполагается, что вы знакомы с API Graph и входом через Facebook, а также знаете, как выполнять вызовы API REST. Если у вас нет приложения, воспользуйтесь Graph API Explorer и пропустите первые два шага.
Вам понадобятся:
Добавьте вход через Facebook в свое приложение на панели приложений.
Можно оставить все настройки по умолчанию. Если вы реализуете вход через Facebook вручную (не рекомендуется), введите redirect_uri
в поле Действительные URI для перенаправления OAuth. Если вы используете наши SDK, поле можно оставить пустым.
Воспользуйтесь документацией для вашей платформы и реализуйте вход через Facebook в своем приложении. Настройте в своей реализации запрос следующих разрешений:
После реализации входа через Facebook войдите в аккаунт разработчика Facebook, перейдите к приложению и запустите модальное окно входа через Facebook. Не забывайте, что у аккаунта разработчика Facebook должны быть разрешения на выполнение задач на Странице Facebook, связанной с аккаунтом Instagram, к которому вы отправляете запрос.
Запустив модальное окно, нажмите ОК, чтобы предоставить приложению разрешения instagram_basic
и pages_show_list
.
API вернет маркер доступа пользователя. Сохраните его, чтобы приложение могло использовать маркер в следующих запросах. Если вы используете Graph API Explorer, маркер сохранится автоматически и будет отображаться в поле Маркер доступа:
Отправьте запрос к конечной точке GET /me/accounts
(он преобразуется в вид GET /{user-id}/accounts
, т. е. запрос GET
отправляется к узлу User Facebook для вашего маркера доступа).
curl -i -X GET \
"https://graph.facebook.com/v19.0
/me/accounts?access_token={access-token}"
Запрос должен вернуть подборку Страниц Facebook, на которых текущий пользователь Facebook может выполнять задачи MANAGE
, CREATE_CONTENT
, MODERATE
или ADVERTISE
:
{ "data": [ { "access_token": "EAAJjmJ...", "category": "App Page", "category_list": [ { "id": "2301", "name": "App Page" } ], "name": "Metricsaurus", "id": "134895793791914", // capture the Page ID "tasks": [ "ANALYZE", "ADVERTISE", "MODERATE", "CREATE_CONTENT", "MANAGE" ] } ] }
Сохраните ID Страницы Facebook, связанной с аккаунтом Instagram, к которому вы хотите отправить запрос. Помните, что у пользователей вашего приложения могут быть разрешения на выполнение задач сразу на нескольких Страницах, поэтому вам так или иначе понадобится алгоритм для определения ID Страницы, который нужно сохранить (или потребуется разработать интерфейс, где пользователь сможет указать правильную страницу).
Отправьте запрос к конечной точке GET /{page-id}?fields=instagram_business_account
, указав сохраненный вами ID страницы:
curl -i -X GET \
"https://graph.facebook.com/v19.0
/134895793791914?fields=instagram_business_account&access_token={access-token}"
Запрос должен вернуть IG User, т. е. бизнес-аккаунт или аккаунт автора Instagram, связанный со Страницей Facebook.
{ "instagram_business_account": { "id": "17841405822304914" // Connected IG User ID }, "id": "134895793791914" // Facebook Page ID }
Сохраните ID аккаунта IG User.
Отправьте запрос к конечной точке GET /{ig-user-id}/media
, указав сохраненный ID аккаунта IG User:
curl -i -X GET \
"https://graph.facebook.com/v19.0
/17841405822304914/media?access_token={access-token}"
Запрос должен вернуть ID всех объектов IG Media для аккаунта IG User:
{ "data": [ { "id": "17918195224117851" }, { "id": "17895695668004550" }, { "id": "17899305451014820" }, { "id": "17896450804038745" }, { "id": "17881042411086627" }, { "id": "17869102915168123" } ], "paging": { "cursors": { "before": "QVFIUkdGRXA2eHNNTUs4T1ZAXNGFxQTAtd3U4QjBLd1B2NXRMM1NkcnhqRFdBcEUzSDVJZATFoLWtXMWZAGU2VrRTk2RHVtTVlDckI2NjN0UERFa2JrUk4yMW13", "after": "QVFIUmlwbnFsM3N2cV9lZAFdCa0hDeV9qMVliT0VuMmJyNENxZA180c0t6VjFQVEJaTE9XV085aU92OUFLNFB6Szd2amo5aV9rTlVBcnNlWmEtMzYxcE1HSFR3" } } }
Если последний запрос будет выполнен успешно, вы сможете выполнять запросы к любым конечным точкам API Graph для Instagram. Для этого ознакомьтесь с нашими руководствами и справкой, где описаны функции каждой конечной точки и необходимые им разрешения.
Когда приложение находится в рабочем режиме, любой пользователь Facebook, которому вы предоставили доступ к нему, может получить доступ к данным бизнес-аккаунта или аккаунта автора Instagram, если он может выполнять задачи на Странице, связанной с этим бизнес-аккаунтом или аккаунтом автора Instagram.