发送消息

如要在 Messenger 或 Instagram 上向用户发送消息,必须由该用户发起对话。Messenger 开放平台支持多种不同的消息类型,可供您发送。每种消息类型都需遵循不同的政策和守则,这些政策和守则规定了可以发送的内容类型以及发送这些内容的条件。

On July 23, 2024 we launched the new Instagram API with Instagram Login. An Instagram professional account – Business or Creator account – will no longer need to be linked to a Facebook Page in order to have conversations with customers, followers, or Instagram users interested in their business or Instagram account, manage comments, or publish media. Learn more about this new version in our blog post.

See our Instagram API with Instagram Login to learn more.

将自动体验告知用户

适用法律要求的情况下,自动聊天体验必须披露用户是在与自动服务互动,比如:

  • 在任何对话或消息互动的开头;
  • 双方有很长时间没有互动了;或者
  • 聊天从人工互动转为自动体验时。

为以下群体服务的自动聊天体验应特别注意此要求:

  • 加州市场或加州用户
  • 德国市场或德国用户

披露内容可能包括但不限于:“我是 [公共主页名称] 智能助手”、“您正在与自动体验互动”、“您正在与智能助手交流”或者“我是自动智能聊天助手”。

即使在法律未要求的情况下,我们也建议最好在用户与自动聊天体验互动时告知他们,因为这有助于应对用户对消息体验互动的期望。

如需了解更多信息,请参阅我们的开发者政策

消息组件

从您应用发出的用于发送消息的所有 Send API 请求须包含以下各项:

  • 用于发送消息的公共主页编号,该公共主页可为 Facebook 公共主页或与 Instagram 专业账户绑定的 Facebook 公共主页
  • 接收消息的用户的编号
  • 由发送消息的公共主页请求的公共主页访问口令
  • 接收消息的用户授予的权限

如要详细了解消息组件,请浏览 Send API 参考文档。

标准消息时间范围

标准消息时间范围指的是 24 小时的时段,在此期间,您可向用户发送消息。如果用户向您的公共主页或 Instagram 专业账户发送消息,或者通过网页插件发起对话,您的应用需要在 24 小时内发送消息。

在 24 小时时间范围内发送的消息可以包含推广性内容。

开启标准消息时间范围的用户操作

以下用户操作会开启 24 小时标准消息时间范围:

  • 用户向您的公共主页或 Instagram 专业账户发送消息
  • 用户点击对话内的“立即开始”等行动号召按钮
  • 用户点击 Messenger 直达广告,然后向您的公共主页或 Instagram 专业账户发送消息
  • 用户通过插件(如发送至 Messenger 插件或复选框插件等)向公共主页发送消息
  • 用户点击 m.me 链接,前往用户与公共主页间的已有对话
  • 用户点击 ig.me 链接,前往用户与 Instagram 专业账户间的已有对话
  • 用户对消息(如营销消息)留下心情
  • 用户评论您公共主页或 Instagram 专业账户上的帖子
  • 用户在您的公共主页上发布访客帖子

我们深知用户期望得到快速回复,所以我们十分鼓励您在此 24 小时时间范围内尽快回复。用户随时都可以选择屏蔽或关闭对话。

收信人编号

recipient 对象参数中设置接收消息的用户的编号,该编号可为以下其中一种编号类型:

  • 公共主页范围编号 (PSID) — 在用户首次向您的公共主页发送消息时,系统会将此编号分配给该用户。此编号是唯一编号,代表公共主页与用户间的互动。

  • 用户引用 — 此编号分配给使用插件或回传按钮向您的公共主页发送消息的用户。

  • 帖子或评论编号 — 此编号分配给在您的公共主页上发布帖子或评论帖子的用户。此编号用于向用户发送私信回复。

请注意,Facebook 登录集成中的用户编号是应用范围编号,不受 Messenger 开放平台支持。

消息类型

messaging_type 参数中设置您要发送的消息的类型。此参数可更明确地确保消息发送符合发消息政策和收信人的偏好设置。

支持以下消息类型:

  • 回复 — 您发送的消息是对已接收消息的回复。消息可以包含推广性内容和非推广性内容,必须在标准消息时间范围内发出。

  • 更新 — 您发送的消息是主动发出,且并非用于回复已收到的消息。消息可以包含推广性内容和非推广性内容,必须在标准消息时间范围内发出。

  • 带标签的消息 — 您发送的消息是在标准消息时间范围过后发出。此消息须包含与标签合理用途相符的消息标签,且包含非推广性内容。

消息标签

通过消息标签,您可以在标准消息时间范围过后发送消息。这些消息是与用户个人相关的更新。例如,您可能会发送与发货和配送、近期预订或航班相关的更新消息,或是与客户账户相关的提醒。对于需要使用上报路径的消息流,业务代表可以使用人工客服标签手动回复用户在 7 天之内发出的消息。

消息标签不可用于发送推广性内容,包括但不限于促销、优惠、优惠券和折扣。如果在获准的用例之外使用消息标签,这可能会导致公共主页或 Instagram 账户的发消息功能受限。详情请参阅 Messenger 开放平台和 Instagram 消息 API 政策

如果使用 Messenger 开放平台的企业要在 24 小时标准消息时间范围过后发送推广性消息,应使用赞助消息一次性通知

内容类型

您发送的消息可以包含以下类型的内容:

  • 音频
  • 按钮
  • 文件
  • 菜单
  • 动图
  • 图片
  • 模板
  • 文本
  • 视频

发送基础文本

如要向已向您公共主页发送消息的用户发送基础文本消息,请向 /PAGE-ID/messages 端点发送 POST 请求,将 recipient 对象字面量键 id 设为用户的公共主页范围编号 (PSID),将 message_type 参数设为 RESPONSE,并将 message 参数对象 text 设为消息文本。

请求示例

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"{PSID}"
  },
  "messaging_type": "RESPONSE",
  "message":{
    "text":"Hello, world!"
  }
}' "https://graph.facebook.com/v21.0/{PAGE-ID}/messages?access_token={PAGE-ACCESS-TOKEN}"
    

若请求成功,您的应用会收到附有收信人编号和消息编号的以下 JSON 响应。

{
  "recipient_id": "PAGE-SCOPED-ID",
  "message_id": "AG5Hz2U..."
} 

发送媒体附件

如要发送带有动图、图像或模板等媒体的消息,您需要在 JSON 消息附件对象中向 API 请求添加内容。

如要向已向您公共主页发送消息的用户发送带图像的消息,请向 /PAGE-ID/messages 端点发送 POST 请求,将 recipient 对象字面量键 id 设为用户的公共主页范围编号 (PSID),将 message_type 参数设为 RESPONSE,并将 message 参数的 attachment 对象的 type 键设为 image,然后将 payload 对象的 url 键设为图像的网址。

请求示例

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"1254459154682919"
  },
  "message":{
    "attachment":{
      "type":"image", 
      "payload":{
        "url":"http://www.messenger-rocks.com/image.jpg", 
        "is_reusable":true
      }
    }
  }
}' "https://graph.facebook.com/v21.0/me/messages?access_token=<PAGE_ACCESS_TOKEN>"
  

若请求成功,您的应用会收到附有收信人编号和消息编号的以下 JSON 响应。

{
  "recipient_id": "PAGE-SCOPED-ID",
  "message_id": "AG5Hz2U..."
} 

如要发送网址中的音频、视频或文件,所使用的格式与此相同。

您还可以发送您服务器中的媒体,或者您之前已上传到 Meta 服务器的内容中的媒体。详细了解如何使用附件上传 API 上传文件。

最佳实践

文本消息

力求简短。考虑屏幕尺寸以及滚动行为;简洁的消息更容易吸引用户的眼球。尝试将消息分成几条发送,而不是发送一段长文。

不要使用文本来替代图像、表格和图表。结构化消息(甚至是网页视图)可能更为符合您的需求。

不要写长篇沟通消息。如果您需要就多项事务进行沟通,请尝试将消息分成几条发送,而不是发送一段长文。

附件

注重质量。使用高像素的彩色图像,让您的消息引人注目。

考虑宽高比。查看图像在消息气泡中显示时,会被裁剪成什么样。

不要在图像中添加大量文本,转为使用文本消息,或者通过常规模板将图像和文本结合起来。

更多消息类型

新闻消息(开发中)

新闻消息只适用于使用 Facebook 新闻公共主页索引 (NPI) 注册的认证的新闻公共主页 。通过新闻消息,新闻发行商可以向订阅这些消息的用户发送非推广性新闻消息。

Instagram 消息 API 不支持新闻消息。

一次性通知

通过一次性通知,您可以向用户请求权限,在标准消息时间范围结束后发送一条跟进消息。如果用户同意接收一次性通知,您即可发送一条与个人相关的时效性消息,如约会提醒或商品补货提醒。

Instagram 消息 API 不支持一次性通知。

私信回复

如果用户对您的任意帖子或广告发表评论,或在您的公共主页或 Instagram 专业账户上发布访客帖子,您可以通过私信回复向该用户发送消息。私信回复只能是单条消息,将自动包含帖子或评论的链接,且必须在用户发布帖子或评论的 7 天内发送。

营销消息

通过营销消息,您可以向用户请求权限,在标准消息时间范围结束后发送多条营销消息。如果用户同意接收这些通知,您可以向用户发送自动生成的定期推广性消息,其中会包含近期促销或产品发布和动态等信息。

赞助消息

在标准消息时间范围结束后,您可借助赞助消息,向之前向您的公共主页或 Instagram 专业账户发送过消息的用户发送推广性或非推广性内容。赞助消息在对话中的显示形式与正常消息类似,但会附有“赞助”字样,位置就在消息的上方。赞助消息内容须符合广告发布政策。

Instagram 消息 API 不支持赞助消息。

详细了解

详细了解使用 Messenger 开放平台发送消息。

开发者支持