Начало работы

В этом документе описано, как отправить вызов к API Graph для Instagram через приложение и получить медиаобъекты бизнес-аккаунта или аккаунта автора Instagram. Предполагается, что вы знакомы с API Graph и входом через Facebook, а также знаете, как выполнять вызовы API REST. Если у вас нет приложения, воспользуйтесь Graph API Explorer и пропустите первые два шага.

Прежде чем начать

Вам понадобятся:

1. Настройка входа через Facebook

Добавьте вход через Facebook в свое приложение на панели приложений.

Можно оставить все настройки по умолчанию. Если вы реализуете вход через Facebook вручную (не рекомендуется), введите redirect_uri в поле Действительные URI для перенаправления OAuth. Если вы используете наши SDK, поле можно оставить пустым.

2. Реализация входа через Facebook.

Воспользуйтесь документацией для вашей платформы и реализуйте вход через Facebook в своем приложении. Настройте в своей реализации запрос следующих разрешений:

3. Получение маркера доступа пользователя.

После реализации входа через Facebook войдите в аккаунт разработчика Facebook, перейдите к приложению и запустите модальное окно входа через Facebook. Не забывайте, что у аккаунта разработчика Facebook должны быть разрешения на выполнение задач на Странице Facebook, связанной с аккаунтом Instagram, к которому вы отправляете запрос.

Запустив модальное окно, нажмите ОК, чтобы предоставить приложению разрешения instagram_basic и pages_show_list.

API вернет маркер доступа пользователя. Сохраните его, чтобы приложение могло использовать маркер в следующих запросах. Если вы используете Graph API Explorer, маркер сохранится автоматически и будет отображаться в поле Маркер доступа:

4. Получение Страниц пользователя.

Отправьте запрос к конечной точке 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 Страницы, который нужно сохранить (или потребуется разработать интерфейс, где пользователь сможет указать правильную страницу).

5. Получение бизнес-аккаунта Instagram для Страницы.

Отправьте запрос к конечной точке 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.

6. Получение медиаобъектов бизнес-аккаунта Instagram.

Отправьте запрос к конечной точке 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.