When this partner addon is enabled, the client’s workspace will be able to set webhook for api chat channel.
...
You need to use your partner api key for authentication
- Get webhook
Code Block |
---|
GET {{baseUrl}}/api/partner/workspace/{{workspace_id}}/apichat-webhook |
...
Code Block |
---|
{ "status": "ok", "data": { "webhook_url": "https://your-webhook-url/", "webhook_verification_key": "VERIFICATION_TOKEN", "webhook_status": "verified", "bot_url": "https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}}" } } |
- Set webhook
Code Block |
---|
POST {{baseUrl}}/api/partner/workspace/{{workspace_id}}/set-apichat-webhook |
Request body:
...
Code Block |
---|
{ "status": "ok", "data": { "webhook_url": "https://your-webhook-url/", "webhook_verification_key": "VERIFICATION_TOKEN", "webhook_status": "verified", "bot_url": "https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}}" } } |
- Remove webhook
Code Block |
---|
DELETE {{baseUrl}}/api/partner/workspace/{{workspace_id}}/remove-apichat-webhook |
Request body: (empty)
...
You need to use your flow api key for authentication, requires manage flow permission
- Send Text Message
Code Block |
---|
POST https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}} |
...
Code Block |
---|
{ "content": "{{TEXT MESSAGE}}", "message_type": "incoming", "sender": { "id": "{{UNIQUE BOT USER ID}}", "name": "{{BOT USER NAME}}", "email": "", "phone_number": "", "type": "contact" }, "conversation_id": 123, "event": "message_created" } |
- Send Button Payload
Code Block |
---|
POST https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}} |
...
Code Block |
---|
{ "content": "{{BUTTON TITLE}}", "message_type": "incoming", "sender": { "id": "{{UNIQUE BOT USER ID}}", "name": "{{BOT USER NAME}}", "email": "", "phone_number": "", "type": "contact" }, "conversation_id": 123, "event": "message_postback", "submitted_values": [ { "title": "{{BUTTON TITLE}}", "payload": "{{BUTTON PAYLOAD}}" } ] } |
- Send Image
Code Block |
---|
POST https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}} |
...
Code Block |
---|
{ "content": "", "message_type": "incoming", "sender": { "id": "{{UNIQUE BOT USER ID}}", "name": "{{BOT USER NAME}}", "email": "", "phone_number": "", "type": "contact" }, "conversation_id": 123, "event": "message_created", "attachments": [ { "file_type": "image", "data_url": "{{IMAGE URL}}" } ] } |
- Send Audio
Code Block |
---|
POST https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}} |
...
Code Block |
---|
{ "content": "", "message_type": "incoming", "sender": { "id": "{{UNIQUE BOT USER ID}}", "name": "{{BOT USER NAME}}", "email": "", "phone_number": "", "type": "contact" }, "conversation_id": 123, "event": "message_created", "attachments": [ { "file_type": "audio", "data_url": "{{AUDIO URL}}" } ] } |
- Send Video
Code Block |
---|
POST https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}} |
...
Code Block |
---|
{ "content": "", "message_type": "incoming", "sender": { "id": "{{UNIQUE BOT USER ID}}", "name": "{{BOT USER NAME}}", "email": "", "phone_number": "", "type": "contact" }, "conversation_id": 123, "event": "message_created", "attachments": [ { "file_type": "video", "data_url": "{{VIDEO URL}}" } ] } |
- Send File
Code Block |
---|
POST https://bot.dfktv2.com/api/apichat/{{unique_code_to_bot}} |
...
Code Block |
---|
$payload = request()->body(); $verification_key = "{{VERIFICATION_TOKEN}}"; $sign = 'sha256='.hash_hmac('sha256', $payload, $verification_key); //you need to check the header signature value is matched request()->header('X-Hub-Signature-256') == $sign |
- Receive Text Message
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "text": "{{TEXT MESSAGE}}", "type": "text", "message_type": "outgoing", "private": false } |
- Receive Button Template
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "text": "{{TEXT MESSAGE}}", "type": "text", "message_type": "outgoing", "private": false, "content_type": "button_template", "content_attributes": { "text": "{{TEXT MESSAGE}}", "buttons": [ { "type": "postback", "title": "{{BUTTON TITLE}}", "payload": "{{BUTTON PAYLOAD}}" },{ "type": "postback", "title": "{{BUTTON TITLE}}", "payload": "{{BUTTON PAYLOAD}}" } ] } } |
- Receive Generic Template (Card/Carousel)
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "text": "{{TEXT MESSAGE}}", "type": "text", "message_type": "outgoing", "private": false, "content_type": "generic_template", "content_attributes": { "ratio": "horizontal", "items": [ { "title": "{{TITLE}}", "image_url": "{{IMAGE URL}}", "item_url": null, "subtitle": "{{SUBTITLE}}", "default_action": null, "buttons": [ { "type": "postback", "title": "{{BUTTON TITLE}}", "payload": "{{BUTTON PAYLOAD}}" } ] }, { "title": "{{TITLE}}", "image_url": "{{IMAGE URL}}", "item_url": null, "subtitle": "{{SUBTITLE}}", "default_action": null, "buttons": [ { "type": "postback", "title": "{{BUTTON TITLE}}", "payload": "{{BUTTON PAYLOAD}}" } ] } ] } } |
- Receive Image Message
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "url": "{{IMAGE URL}}", "type": "image", "message_type": "outgoing", "private": false } |
- Receive Audio Message
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "url": "{{AUDIO URL}}", "type": "audio", "message_type": "outgoing", "private": false } |
- Receive Video Message
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "url": "{{VIDEO URL}}", "type": "video", "message_type": "outgoing", "private": false } |
- Receive File Message
Code Block |
---|
{ "sender_id": "{{UNIQUE BOT USER ID}}", "conv_id": 123, "url": "{{FILE URL}}", "type": "file", "message_type": "outgoing", "private": false } |
...