入门指南

本文档介绍了如何使用应用成功调用支持 Instagram 的 Messenger API(在我们的开发者政策中也将之称为 Instagram 消息 API),并获取 Instagram 专业账户消息。在本文中,我们假定您熟悉图谱 APIFacebook 登录

准备工作

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

初次接触 Messenger 开放平台的开发者

  • 按照以下详细的分步指南操作,生成公共主页访问口令,然后完成 Webhooks 设置。
  • 了解各种开放平台功能,并采用适合您需求的功能。

拥有 Messenger 开放平台经验的开发者

  • 访问口令和 Webhooks 的概念相似。支持 Instagram 的 Messenger API 需要公共主页访问口令的 instagram_manage_messages 以及所订阅的 Instagram 主题的 Webhooks。
  • 大多数功能都类似于 Messenger API。查看功能列表中的详细信息,采用适合您需求的功能。

登录流程

您可以使用 Facebook 登录或面向 Instagram 的业务账户关联登录,向应用用户请求所需的权限。

面向 Instagram 的业务账户关联登录 流程允许用户可以在执行登录流程期间完成以下操作:

  • 将 Instagram 账户转换为 Instagram 专业账户
  • 为业务创建 Facebook 公共主页
  • 将该公共主页关联到 Instagram 专业账户

如要实现面向 Instagram 的业务账户关联登录,请浏览我们的面向 Instagram 的业务账户关联登录指南 ,然后返回本指南。

1. 获取用户访问口令

确保您已登录 Facebook 开发者账户,然后访问应用并触发 Facebook 登录窗口。请记住,您的 Facebook 开发者账户必须能够在已关联到所要查询的 Instagram 账户的 Facebook 公共主页上,以“版主”或更高级别访问权限执行任务

触发模式窗口后,点击 OK 为您的应用授予 instagram_basicinstagram_manage_messagespages_manage_metadata 权限。

API 应该会返回用户访问口令。获取该口令,以供您的应用在接下来的若干查询中使用。如果您在使用图谱 API 探索工具,系统会自动获取该口令,并将其显示在“访问口令”栏位中以供参考:

2. 获取用户公共主页

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

curl -i -X GET \
 "https://graph.facebook.com/v9.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 公共主页的编号。请记住,您的应用用户或可在多个公共主页上执行任务,所以您最终必须引入逻辑,保证能够确定要获取的正确公共主页编号(或者设计一个用户界面,让您的应用用户能够为您识别正确的公共主页)。

3. 获取公共主页访问口令

为了执行各种 Instagram 消息 API 调用,您需要使用相关 Instagram 专业账户的相应公共主页访问口令 (PAT),该口令之前已通过 Facebook 登录流程获取。

使用您的用户访问口令向 /{page-id} 端点发送 GET 请求。例如:

curl -i -X GET "https://graph.facebook.com/{page-id}?
  fields=access_token&
  access_token={user-access-token}"  

成功后,应用会收到以下响应:

{
  "access_token":"{page-access-token}",
  "id":"{page-id}"              
}  
  • 如果您使用的是短期用户访问口令,则公共主页访问口令仅在 1 小时内有效。
  • 如果您使用的是长期用户访问口令,则公共主页访问口令没有过期日期。

如要生成长期公共主页访问口令,您可以参考此处的指南。

3a. 通过 Instagram 开发者面板工具获取公共主页访问口令

我们会在未来几周陆续向所有开发人员推出此工具。如果您在应用面板下没有看到这些设置,则可以利用上述 1-5 步生成公共主页访问口令。

根据需求,如果您拥有想加入支持 Instagram 的 Messenger API 的资产(Instagram 账户和 Facebook 公共主页),则可以利用开发者应用面板下的 Instagram 设置工具,轻松设置公共主页访问口令和 Webhooks。您可以通过以下路径找到该工具:开发者应用面板 → Messenger → Instagram 设置。口令和 Webhooks 的现有配置方式仍然有效,但是您可通过这个工具更轻松地设置您的环境。

4. 启用“消息控制”下的“关联工具”设置

为了通过 API 管理 Instagram 消息,Instagram 专业账户需要启用“消息控制”下的“关联工具”设置。

5. 获取 Instagram 专业账户的收件箱对象

使用获取的公共主页编号和公共主页访问口令 (PAT) 查询 GET /{page-id}/conversations?platform=instagram 端点:

curl -i -X GET \
 "https://graph.facebook.com/v9.0/17841405822304914/conversations?platform=instagram&access_token={access-token}"  

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

{
  "data": [
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTM2MDk5MDc1MzYyOTgx"
    },
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTYzMzQ2MzE5NjM1NDcy"
    },
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTk3MTY0NjI2NzAyMjMw"
    },
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MzkzNDI5MDYzMzkyNjU0"
    }
}

如果您可以成功执行此最终查询,便应能够使用任何支持 Instagram 的 Messenger API 端点执行查询。请参阅我们的各种指南和参考文件,了解每个端点可以执行哪些操作,以及其需要哪些权限。

后续步骤

  • 进一步开发您的应用,使其能够成功使用所需的任何其他端点,并持续追踪每个端点需要的权限
  • 完成 Webhooks 设置,在用户向 Instagram 专业账户发送消息时,应用便可以接收实时通知。
  • 完成应用审核流程,并就应用需要的所有权限请求批准,以便在应用正式推出后,应用用户可以向应用授予这些权限。

开发者支持