---2.2 Json Api

JSON API cho phép bạn gửi request dưới dạng GET/POST/PUT/DELETE để:

- 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) - Lưu thông tin khách hàng vào google sheet hoặc lấy thông tin từ google sheet ra cho khách hàng - Chuyển hướng khách hàng đến các block hội thoại theo ý muốn - Cài đặt attribute cho khách hàng (có thể sử dụng công thức toán học như đặt hàng, lưu điểm số)

Gửi văn bản

Sử dụng mẫu này để gửi tin nhắn văn bản. API ví dụ: http://www.mocky.io/v2/5c1772412f00004d00b086c4

{
"messages": [
{"text": "Welcome to AhaChat!"},
{"text": "Sorry, can I help you?"}
]
}

Gửi hình ảnh

Sử dụng mẫu này để gửi tập tin hình ảnh. Messenger hỗ trợ hình ảnh 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. API ví dụ: http://www.mocky.io/v2/5c18d25d2f00000f00af11c3

{
"messages": [
{
"attachment": {
"type": "image",
"payload": {
"url": "https://ahachat.com/assets/welcome.png"
}
}
}
]
}

Gửi video

Sử dụng mẫu này để gửi các tập tin video. Messenger hỗ trợ video MP4, có dung lượng lên tới 25MB. API Ví dụ: http://www.mocky.io/v2/5c18d29a2f00006400af11c5

{
"messages": [
{
"attachment": {
"type": "video",
"payload": {
"url": "https://ahachat.com/assets/video.mp4"
}
}
}
]
}

Gửi âm thanh

Sử dụng mẫu này để gửi tập tin âm thanh. Messenger hỗ trợ âm thanh MP3, OGG, WAV, có dung lượng lên tới 25MB. API Ví dụ: http://www.mocky.io/v2/5c18d2ac2f00007500af11c6

{
"messages": [
{
"attachment": {
"type": "audio",
"payload": {
"url": "https://ahachat.com/assets/hello.mp3"
}
}
}
]
}

Gửi tập tin

Sử dụng mẫu này để gửi bất kỳ tệp nào khác, không lớn hơn 25 MB. API Ví dụ: http://www.mocky.io/v2/5c18d2c52f00006100af11c7

{
"messages": [
{
"attachment": {
"type": "file",
"payload": {
"url": "https://ahachat.com/assets/ticket.pdf"
}
}
}
]
}

Gửi thẻ ảnh ngang

Sử dụng mẫu này để gửi một bộ sưu tập cuộn ngang. Mỗi mục bao gồm một tệp đính kèm hình ảnh, mô tả ngắn và các nút để yêu cầu người dùng bấm vào. API Ví dụ: http://www.mocky.io/v2/5c18d35e2f00006400af11c8

{
"messages": [
{
"attachment":{
"type":"template",
"payload":{
"template_type":"generic",
"image_aspect_ratio": "square",
"elements":[
{
"title":"AhaChat Rockets Jersey",
"image_url":"https://ahachat.com/assets/shirt.jpg",
"subtitle":"Size: M",
"buttons":[
{
"type":"web_url",
"url":"https://ahachat.com/store",
"title":"View Item"
}
]
},
{
"title":"AhaChat Rockets Jersey",
"image_url":"https://ahachat.com/assets/shirt.jpg",
"subtitle":"Size: L",
"default_action": {
"type": "web_url",
"url": "https://ahachat.com/store",
"messenger_extensions": true
},
"buttons":[
{
"type":"web_url",
"url":"https://ahachat.com/store",
"title":"View Item"
}
]
}
]
}
}
}
]
}

Gửi danh sách

Sử dụng mẫu này để gửi danh sách các mặt hàng theo chiều dọc. Mỗi mục bao gồm một tệp đính kèm hình ảnh, mô tả ngắn và các nút để yêu cầu người dùng bấm vào. Nó có thể được hiển thị theo hai cách khác nhau. "top_element_style": "large" hiển thị mục đầu tiên với hình ảnh bìa với văn bản được phủ lên. "top_element_style": "compact" hiển thị từng mục một cách giống hệt nhau và rất hữu ích để trình bày danh sách các mục mà không có mục nào được hiển thị nổi bật. API Ví dụ: http://www.mocky.io/v2/5c18d50e2f00006400af11d0

{
"messages": [
{
"attachment":{
"type":"template",
"payload":{
"template_type":"list",
"top_element_style":"large",
"elements":[
{
"title":"Chatfuel Rockets Jersey",
"image_url":"http://ahachat.com/assets/shirt.jpg",
"subtitle":"Size: M",
"buttons":[
{
"type":"web_url",
"url":"https://ahachat.com/store",
"title":"View Item"
}
]
},
{
"title":"Chatfuel Rockets Jersey",
"image_url":"http://ahachat.com/assets/shirt.jpg",
"subtitle":"Size: L",
"default_action": {
"type": "web_url",
"url": "https://ahachat.com/store",
"messenger_extensions": true
},
"buttons":[
{
"type":"web_url",
"url":"https://ahachat.com/store",
"title":"View Item"
}
]
}
]
}
}
}
]
}

Gửi biên lai

Sử dụng mẫu này để gửi xác nhận đơn hàng. Nó có thể bao gồm một bản tóm tắt đơn hàng, chi tiết thanh toán và thông tin vận chuyển. API Ví dụ: http://www.mocky.io/v2/5c18d51f2f00005700af11d1

{
"messages": [
{
"attachment": {
"type": "template",
"payload": {
"template_type": "receipt",
"recipient_name": "Mark Zuckerberg",
"order_number": "12345678901",
"currency": "USD",
"payment_method": "Visa 2345",
"order_url": "https://ahachat.com/store?order_id=12345678901",
"timestamp": "1428444666",
"address": {
"street_1": "1 Hacker Way",
"street_2": "",
"city": "Menlo Park",
"postal_code": "94025",
"state": "CA",
"country": "US"
},
"summary": {
"subtotal": 105,
"shipping_cost": 4.95,
"total_tax": 9,
"total_cost": 118.95
},
"adjustments": [
{
"name": "CF Rockets Superstar",
"amount": -25
}
],
"elements": [
{
"title": "Chatfuel Rockets Jersey",
"subtitle": "Size: M",
"quantity": 1,
"price": 65,
"currency": "USD",
"image_url": "http://ahachat.com/assets/shirt.jpg"
},
{
"title": "Chatfuel Rockets Jersey",
"subtitle": "Size: L",
"quantity": 1,
"price": 65,
"currency": "USD",
"image_url": "http://ahachat.com/assets/shirt.jpg"
}
]
}
}
}
]
}

Nút bấm

Sử dụng JSON này để thêm các nút vào câu trả lời của bạn. Bạn có thể đặt các nút để liên kết đến một block hội thoại, mở trang web hoặc gửi yêu cầu api khác. Mỗi tin nhắn được giới hạn 3 nút bấm. API Ví dụ: http://www.mocky.io/v2/5c18d9f12f00006200af11fb

{
"messages": [
{
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": "Hello!",
"buttons": [
{
"type": "show_block",
"block_name": "name of block",
"title": "Show Block"
},
{
"type": "web_url",
"url": "https://ahachat.com",
"title": "Visit Website"
},
{
"type": "web_url",
"url": "https://fb.com/groups/ahachat",
"title": "Visit Group"
}
]
}
}
}
]
}

Messenger cũng hỗ trợ các nút chuyên dụng:

  • Nút Gọi sẽ quay số điện thoại khi bấm vào.

  • Nút Chia sẻ cho phép mọi người chia sẻ tin nhắn bot với bạn bè của họ. (Chỉ dành cho thẻ ảnh) API Ví dụ: http://www.mocky.io/v2/5c18d5952f00003400af11d5

{
"messages":[
{
"attachment":{
"type":"template",
"payload":{
"template_type":"generic",
"elements":[
{
"title":"Get in touch",
"image_url":"https://ahachat.com/assets/contact.jpg",
"subtitle":"Feel free to hit us up!",
"buttons":[
{
"type":"phone_number",
"phone_number":"+84918123413",
"title":"Call"
},
{
"type":"element_share"
}
]
}
]
}
}
}
]
}

Bạn cũng có thể lưu attribute thẻ từ tùy chọn của người dùng. Ví dụ nếu người dùng bấm vào Show Block thì sẽ lưu 1 vào attribute number, còn nếu người dùng bấm vào Visit Website thì sẽ lưu 2 vào attribute number API Ví dụ: http://www.mocky.io/v2/5c19b5453200000e0064ad03

{
"messages": [
{
"attachment": {
"type": "template",
"payload": {
"template_type": "button",
"text": "Hello!",
"buttons": [
{
"type": "show_block",
"block_name": "name of block",
"title": "Show Block",
"set_attributes": {
"number": 1
},
"set_tags": ["tag1"]
},
{
"type": "web_url",
"url": "https://ahachat.com",
"title": "Visit Website",
"set_attributes": {
"number": 2
},
"set_tags": ["tag2"]
}
]
}
}
}
]
}

Trả lời nhanh

Sử dụng JSON này để thêm trả lời nhanh cho câu trả lời của bạn. Mỗi tin nhắn được giới hạn 11 mục Trả lời nhanh. API Ví dụ: http://www.mocky.io/v2/5c18daf52f00000f00af1207

{
"messages": [
{
"text": "AhaChat is useful for your business?",
"quick_replies": [
{
"title":"Yes, sure!",
"block_name": "Block 1"
},
{
"title":"I don't know",
"block_name": "Block 2"
}
]
}
]
}

Bạn cũng có thể lưu attribute thẻ từ tùy chọn của người dùng. Ví dụ nếu người dùng bấm vào Number 1 thì sẽ lưu 1 vào attribute number, còn nếu người dùng bấm vào Number 2 thì sẽ lưu 2 vào attribute number API Ví dụ: http://www.mocky.io/v2/5c18dbee2f00004e00af1216

{
"messages": [
{
"text": "What's your number?",
"quick_replies": [
{
"title": "Number 1",
"set_attributes": {
"number": 1
},
"set_tags": ["tag1"]
},
{
"title": "Number 2",
"set_attributes": {
"number": 2
},
"set_tags": ["tag2"]
}
]
}
]
}

Cài đặt thuộc tính (attributes) cho người dùng

Sử dụng JSON này để đặt thuộc tính người dùng mà không cần người dùng bấm vào bất kỳ nút nào. (Chú ý nếu kiểu số thì sẽ không có dấu "", ví dụ: "number": 1) API Ví dụ: http://www.mocky.io/v2/5c19ce9c320000550064ad4e

{
"set_attributes":
{
"text 1": "some value",
"text 2": "another value",
"number 1": 1,
"number 2": 2
}
}

Hoặc cài đặt thuộc tính người dùng kèm theo tin nhắn (văn bản, hình ảnh...) API Ví dụ: http://www.mocky.io/v2/5c19cf8b320000540064ad50

{
"set_attributes":
{
"text 1": "some value",
"text 2": "another value",
"number 1": 1,
"number 2": 2
},
"messages":[
. . .
]
}

Cài đặt thẻ cho người dùng

Sử dụng JSON này để đặt thẻ người dùng mà không cần người dùng bấm vào bất kỳ nút nào. API Ví dụ: http://www.mocky.io/v2/5c19cc9b320000570064ad3c

{
"set_tags": ["tag1", "tag2"]
}

Hoặc cài đặt thẻ người dùng kèm theo tin nhắn (văn bản, hình ảnh...) API Ví dụ: http://www.mocky.io/v2/5c19cd993200006d0064ad46

{
"set_tags": ["tag1", "tag2"],
"messages":[
. . .
]
}

Chuyển hướng đến block hội thoại khác

Bạn có thể chuyển hướng người dùng đến một block hội thoại khác - không cần hành động của người dùng. Ví dụ nếu người dùng đã cung cấp số điện thoại thì di chuyển đến block 1, còn nếu chưa thì di chuyển đến block 2. API Ví dụ: http://www.mocky.io/v2/5c19b5453200000e0064ad03

{
"redirect_to_block": "Block 1"
}