Bỏ qua để đến nội dung
RetionRetionTài liệu

API Chatbot Facebook

Json API

JSON API cho phép bạn gửi request dưới dạng POST (thời gian chờ là 5) để:

  • Tạo nội dung động (gửi các tin nhắn từ CMS hay CRM của bạn đến khách hàng).
  • Chuyển hướng khách hàng đến các kịch bản khác.

Cú pháp

  • URL: https://chatbot-api.botbanhang.vn/public/json
  • BODY:
  • access_token: Là mã xác thực API trong phần "Cài đặt".
  • page_id: Là ID của trang do Facebook tạo ra.
  • client_id: Là ID của người dùng trên trang.
  • flow_id: Là ID của kịch bản Chatbot muốn chuyển hướng.
  • message | messages: Là nội dung | danh sách các nội dung động bạn muốn gửi đến khách hàng.
  • custom_attribute: Là các thuộc tính đính kèm khi kích hoạt kịch bản.
curl -XPOST 'https://chatbot-api.botbanhang.vn/public/json' \
--header 'Content-Type: application/json' \
--data '{
    "access_token": "<ACCESS_TOKEN>",
    "client_id": "<CLIENT_ID>",
    "page_id": "<PAGE_ID>",
    "message": {
        "text": "Xin chào"
    },
    "messages": [
        {
            "text": "Tin nhắn đến khách hàng 1"
        },
        {
            "text": "Tin nhắn đến khách hàng 2"
        },
        {
            "text": "Tin nhắn đến khách hàng 3"
        }
    ],
    "flow_id": "<FLOW_ID>",
    "custom_attribute": {
        "phone": "0123456789",
        "email: "abc@xyz.com"
    }
}'

Các mẫu tham khảo

1. Chuyển hướng khách hàng đến kịch bản khác

curl -XPOST 'https://chatbot-api.botbanhang.vn/public/json' \
--header 'Content-Type: application/json' \
--data '{
    "access_token": "<ACCESS_TOKEN>",
    "client_id": "<CLIENT_ID>",
    "page_id": "<PAGE_ID>",
    "flow_id": "<FLOW_ID>"
}'

2. Gửi một nội dung đến khách hàng

curl -XPOST 'https://chatbot-api.botbanhang.vn/public/json' \
--header 'Content-Type: application/json' \
--data '{
    "access_token": "<ACCESS_TOKEN>",
    "client_id": "<CLIENT_ID>",
    "page_id": "<PAGE_ID>",
    "message": {
        "text": "Xin chào bạn!"
    }
}'

3. Gửi nhiều nội dung đến khách hàng

curl -XPOST 'https://chatbot-api.botbanhang.vn/public/json' \
--header 'Content-Type: application/json' \
--data '{
    "access_token": "<ACCESS_TOKEN>",
    "client_id": "<CLIENT_ID>",
    "page_id": "<PAGE_ID>",
    "messages": [
        {
            "text": "Tin nhắn đến khách hàng 1"
        },
        {
            "text": "Tin nhắn đến khách hàng 2"
        },
        {
            "text": "Tin nhắn đến khách hàng 3"
        }
    ]
}'

4. Các mẫu nội dung tham khảo

Thay thế các json dưới đây vào nội dung của message hoặc thêm vào phần tử của mảng messages.

a. Gửi văn bản

{ "text": "Nội dung tin nhắn gửi đến khách hàng" }

b. Gửi hình ảnh

Facebook hỗ trợ các hình ảnh dạng jpg, png và gif.

Nếu bạn gặp sự cố với hình ảnh gif, vui lòng thử giảm kích thước tệp.

{
    "attachment": {
        "type": "image",
        "payload": {
            "url": "https://botbanhang.vn/images/logo.png"
        }
    }
}

5. Gửi video

Facebook hỗ trợ video dang mp4, với dung lượng tối đa là 25mb.

  • Gửi video từ một URL:
{
  "attachment": {
    "type": "video",
    "payload": {
      "url": "https://www.sample-videos.com/video123/mp4/720/big_buck_bunny_720p_5mb.mp4"
    }
  }
}
  • Gửi video là một bài viết của Facebook:
{
  "attachment": {
    "type": "template",
    "payload": {
      "template_type": "media",
      "elements": [
        {
          "media_type": "video",
          "url": "https://www.facebook.com/unofficial.abio/videos/2593801767328577/"
        }
      ]
    }
  }
}

6. Gửi âm thanh

Facebook hỗ trợ tập tin âm thanh dạng mp3, ogg, wav, với dung lượng tối đa là 25mb.

{
  "attachment": {
    "type": "audio",
    "payload": {
      "url": "https://www.sample-videos.com/audio/mp3/wave.mp3"
    }
  }
}

7. Gửi tập tin

Sử dụng mẫu này để gửi tất cả các tập tin có đuôi khác các mẫu bên trên, với dung lượng tối đa là 25mb.

{
  "attachment": {
    "type": "file",
    "payload": {
      "url": "https://www.sample-videos.com/pdf/Sample-pdf-5mb.pdf"
    }
  }
}

8. Gửi bộ ảnh ngang (Slide)

Sử dụng mẫu này để gửi một bộ ảnh ngang.

Mỗi ảnh ngang bao gồm một hình ảnh, mô tả và các nút bấm điều hướng.

{
  "attachment": {
    "type": "template",
    "payload": {
      "template_type": "generic",
      "image_aspect_ratio": "square",
      "elements": [
        {
          "title": "ÁO PHÔNG NAM DÀI TAY",
          "image_url": "https://botbanhang.vn/images/logo.png",
          "subtitle": "Size: M",
          "buttons": [
            {
              "type": "web_url",
              "url": "https://botbanhang.vn",
              "title": "Xem chi tiết"
            }
          ]
        },
        {
          "title": "ÁO PHÔNG NAM DÀI TAY",
          "image_url": "https://botbanhang.vn/images/logo.png",
          "subtitle": "Size: L",
          "default_action": {
            "type": "web_url",
            "url": "https://botbanhang.vn",
            "messenger_extensions": true
          },
          "buttons": [
            {
              "type": "web_url",
              "url": "https://botbanhang.vn",
              "title": "Xem chi tiết"
            }
          ]
        }
      ]
    }
  }
}

9. Gửi nút bấm

Sử dụng mẫu này để thêm các nút bấm vào câu trả lời của bạn.

Các nút bấm có thể liên kết đến một kịch bản khác, mở trang web hoặc gọi số điện thoại.

Số nút bấm tối đa của một tin nhắn là 3.

{
  "attachment": {
    "type": "template",
    "payload": {
      "template_type": "button",
      "text": "Hello!",
      "buttons": [
        {
          "type": "postback",
          "payload": "<FLOW>_[ID kịch bản]", // VD: <FLOW>_abcd123456
          "title": "Hiện kịch bản"
        },
        {
          "type": "web_url",
          "url": "https://botbanhang.vn",
          "title": "Truy cập Website"
        },
        {
          "type": "phone_number",
          "title": "Gọi điện cho chúng tôi"
        }
      ]
    }
  }
}

10. Gửi trả lời nhanh

Sử dụng mẫu này để thêm các trả lời nhanh vào tin nhắn của bạn.

Các trả lời nhanh có thể liên kết đến một kịch bản khác, nhận email hoặc số điện thoại mà người dùng đăng ký trên Facebook.

Số trả lời nhanh tối đa của một tin nhắn là 10.

{
  "text": "Bạn có muốn tiếp tục sử dụng sản phẩm Bot Bán Hàng?",
  "quick_replies": [
    {
      "content_type": "user_email",
      "title": "Email"
    },
    {
      "content_type": "user_phone_number",
      "title": "Số điện thoại"
    },
    {
      "content_type": "text",
      "title": "Gửi kịch bản",
      "payload": "<FLOW>_[ID kịch bản]" // VD: <FLOW>_abcd123456
    }
  ]
}

11. Chú ý

Các mẫu tin nhắn được sử dụng theo cú pháp của Facebook cung cấp, bạn có thể tham khảo thêm tài liệu chính thức của Facebook ở đường dẫn dưỡi đây:

https://developers.facebook.com/docs/graph-api/reference/v19.0/message