快速回复

“快速回复”以全新方式向用户呈现按钮。“快速回复”主要显示直观的按钮供用户选择,将键盘输入功能放在次要的位置。轻触快速回复时,消息将在对话中发送,同时回调中包含开发者定义的元数据。此外,所有按钮都将被停用,防止用户触碰到对话中历史消息内的按钮。

快速回复可包含文字,您也可以选择性地添加图片。

此外,您还可以使用快速回复提示用户提供位置信息。

示例

纯文字

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"USER_ID"
  },
  "message":{
    "text":"Pick a color:",
    "quick_replies":[
      {
        "content_type":"text",
        "title":"Red",
        "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED"
      },
      {
        "content_type":"text",
        "title":"Green",
        "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_GREEN"
      }
    ]
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"    

文字和图片

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"USER_ID"
  },
  "message":{
    "text":"Pick a color:",
    "quick_replies":[
      {
        "content_type":"text",
        "title":"Red",
        "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED",
        "image_url":"http://petersfantastichats.com/img/red.png"
      },
      {
        "content_type":"text",
        "title":"Green",
        "payload":"DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_GREEN",
        "image_url":"http://petersfantastichats.com/img/green.png"
      }
    ]
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"    

位置

curl -X POST -H "Content-Type: application/json" -d '{
  "recipient":{
    "id":"USER_ID"
  },
  "message":{
    "text":"Please share your location:",
    "quick_replies":[
      {
        "content_type":"location",
      }
    ]
  }
}' "https://graph.facebook.com/v2.6/me/messages?access_token=PAGE_ACCESS_TOKEN"

字段

message 对象

属性名称 说明 是否必须提供

text

消息文本

必须设置 textattachment

attachment

attachment 对象

必须设置 textattachment

quick_replies

要随消息发送的一组 quick_reply

  • quick_replies 的数量限制为 11

attachment 对象

属性名称 说明 是否必须提供

type

附件类型,可以是 imagetemplate

payload

附件负载

快速回复适用于所有消息类型,包括文本消息、图片和模板附件。如需详细了解如何使用 attachment 对象,请参阅发送 API 文档

quick_reply 对象

属性名称 说明 类型 是否必须提供

content_type

textlocation

字符串

title

按钮说明

字符串

仅当 content_typetext

payload

将通过 webhook 向您发回的自定义数据

字符串

仅当 content_typetext

image_url

text 快速回复的图片网址

字符串

  • title 限制为 20 个字符,超出时将被截断
  • payload 的字符数限制为 1000 个
  • 如果 content_typelocation,就不会使用 titlepayload
  • image_url 包含的图片大小应至少为 24x24,并会裁剪和调整尺寸

回调

轻触“快速回复”后,系统将向您的 webhook 消息接收回调发送文本消息。消息文本将对应于“快速回复”的标题。消息对象还包含名为 quick_reply 的字段,此字段包含快速回复的 payload 数据。

{
  "sender": {
    "id": "USER_ID"
  },
  "recipient": {
    "id": "PAGE_ID"
  },
  "timestamp": 1464990849275,
  "message": {
    "mid": "mid.1464990849238:b9a22a2bcb1de31773",
    "seq": 69,
    "text": "Red",
    "quick_reply": {
      "payload": "DEVELOPER_DEFINED_PAYLOAD_FOR_PICKING_RED"
    }
  }
}    

当用户分享位置时,回调将如下所示:

{
  "object": "page",
  "entry": [
    {
      "id": "PAGE_ID",
      "time": 1472672934319,
      "messaging": [
        {
          "sender": {
            "id": "USER_ID"
          },
          "recipient": {
            "id": "PAGE_ID"
          },
          "timestamp": 1472672934259,
          "message": {
            "mid": "mid.1472672934017:db566db5104b5b5c08",
            "seq": 297,
            "attachments": [
              {
                "title": "Facebook HQ",
                "url": "https://www.facebook.com/l.php?u=https%....5-7Ocxrmg",
                "type": "location",
                "payload": {
                  "coordinates": {
                    "lat": 37.483872693672,
                    "long": -122.14900441942
                  }
                }
              }
            ]
          }
        }
      ]
    }
  ]
}