入门指南

本文档将介绍如何使用您的应用成功调用 Instagram 图谱 API 并获取 Instagram 业务帐户或创作者帐户的媒体对象。在本文档中,我们假定您熟悉图谱 APIFacebook 登录,并知道如何执行 REST API 调用。如果您还没有应用,则可改用图谱 API 探索工具,并跳过步骤 1 和 2。

准备工作

您需要以下对象的访问权限:

1. 配置 Facebook 登录

在应用面板中为您的应用添加 Facebook 登录产品。

您可以保留所有默认设置。如果您想手动实现 Facebook 登录(不推荐),请在有效 OAuth 跳转 URI 字段中输入您的 redirect_uri。如果您要使用我们的某个 SDK,则可将该字段留空。

2. 实现 Facebook 登录

按照针对您所在平台提供的 Facebook 登录文档,在您的应用中实现 Facebook 登录。设置您的实现方案以请求这些权限:

3. 生成用户访问口令

实现 Facebook 登录后,请确保已登录 Facebook 开发者帐户,然后访问应用并触发 Facebook 登录模式。请记住,您的 Facebook 开发者帐户必须能够在 Facebook 公共主页上执行任务,且该公共主页已与您希望查询的 Instagram 帐户相关联。

触发模式后,点击确定以授予您的应用 instagram_basicpages_show_list 权限。

API 应该会返回用户访问口令。获取该口令,以供您的应用在后续的若干查询中使用。如果您在使用图谱 API 探索工具,系统会自动捕获该口令,并将其显示在访问口令字段以供参考:

4. 获取用户公共主页

查询 GET /me/accounts 端点(此端点将转换为 GET /{user-id}/accounts,会根据您的访问口令在 Facebook 用户节点上执行 GET 请求)。

curl -i -X GET \
 "https://graph.facebook.com/v19.0/me/accounts?access_token={access-token}"

这应该返回一个 Facebook 公共主页集合,当前 Facebook 用户可以在这些公共主页上执行 MANAGECREATE_CONTENTMODERATEADVERTISE 任务:

{
  "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"
      ]
    }
  ]
}

获取与您想查询的 Instagram 帐户相关联的 Facebook 公共主页的编号。请记住,您的应用用户或可在多个公共主页上执行任务,所以您最终必须引入逻辑,保证能够确定要获取的正确公共主页编号(或者设计一个用户界面,让您的应用用户能够为您识别正确的公共主页)。

5. 获取公共主页的 Instagram 业务帐户

使用您捕获的公共主页编号查询 GET /{page-id}?fields=instagram_business_account 端点:

curl -i -X GET \
 "https://graph.facebook.com/v19.0/134895793791914?fields=instagram_business_account&access_token={access-token}"

此操作应返回与 Facebook 公共主页相关联的 Instagram 用户,即 Instagram 业务帐户或创作者帐户。

{
  "instagram_business_account": {
    "id": "17841405822304914"  // Connected IG User ID
  },
  "id": "134895793791914"  // Facebook Page ID
}

捕获 Instagram 用户编号。

6. 获取 Instagram 业务帐户的媒体对象

使用您捕获的 Instagram 用户编号查询 GET /{ig-user-id}/media 端点:

curl -i -X GET \
 "https://graph.facebook.com/v19.0/17841405822304914/media?access_token={access-token}"

此操作应返回 Instagram 用户上所有 Instagram 媒体对象的编号:

{
  "data": [
    {
      "id": "17918195224117851"
    },
    {
      "id": "17895695668004550"
    },
    {
      "id": "17899305451014820"
    },
    {
      "id": "17896450804038745"
    },
    {
      "id": "17881042411086627"
    },
    {
      "id": "17869102915168123"
    }
  ],
  "paging": {
    "cursors": {
      "before": "QVFIUkdGRXA2eHNNTUs4T1ZAXNGFxQTAtd3U4QjBLd1B2NXRMM1NkcnhqRFdBcEUzSDVJZATFoLWtXMWZAGU2VrRTk2RHVtTVlDckI2NjN0UERFa2JrUk4yMW13",
      "after": "QVFIUmlwbnFsM3N2cV9lZAFdCa0hDeV9qMVliT0VuMmJyNENxZA180c0t6VjFQVEJaTE9XV085aU92OUFLNFB6Szd2amo5aV9rTlVBcnNlWmEtMzYxcE1HSFR3"
    }
  }
}

如果您能够成功执行此最终查询,则应能使用任何 Instagram 图谱 API 端点执行查询。请参阅我们的各种指南和参考文档,以了解每个端点的作用及其所需的权限。

后续步骤

  • 进一步开发您的应用,以使其可以成功使用所需的任何其他端点,并追踪每个端点所需的权限
  • 完成应用审核流程,并就应用所需的所有权限请求批准,以便您的应用处于已发布模式时,应用用户可以授予这些权限
  • 将您的应用切换至已发布模式,并向潜在用户推广

在您的应用进入已发布模式后,任何可使用您应用的 Facebook 用户均可访问 Instagram 业务帐户或创作者帐户的数据,前提是他们的 Facebook 用户帐户可在与该 Instagram 业务帐户或创作者帐户相关联的公共主页上执行任务。