透過這種集成,您的團隊可以透過自訂實現在任何訊息管道上與您的客戶聊天。
步驟 1: 前往 設定 > 頻道
步驟 2: 點選 新增頻道 > 自訂頻道 > 連線
步驟 3:輸入將發送傳出訊息的目標 Webhook URL。
步驟 4: 選擇頻道的 ID 類型 > 點選 下一步
ID 類型用於使用者識別並用於與您的自訂整合伺服器進行通訊。
有兩種類型的 ID 可用:
電話號碼:如果訊息服務提供者根據電話號碼識別聯絡人,請使用此項目。
範例格式: +60177872890
自訂 ID:如果訊息服務提供者根據自訂產生的 ID 識別聯絡人,則使用此選項。
最大字元長度為 50。
A-Z
、a-z
、0-9
、_
、=
、+
、/
和@
是允許的。
步驟 5:以下對話框將提供頻道 ID、API 令牌和Webhook URL,例如。
頻道 ID:gfd8g7fd89dgfd
API 令牌:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd
Webhook URL:https://app.respond.io/custom/channel/webhook/
使用電話號碼 ID 類型可讓您發起對話並向聯絡人發送第一則訊息。
Webhook URL用於將訊息、訊息回音和訊息收據發送到respond.io平台。
提供的程式碼將觸發 respond.io 上的 webhook,如有必要,建立聯絡人並將訊息保存在該聯絡人下。
訊息範例
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Hello World"
}
}
\],
"contact": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}'
訊息回顯示例
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message_echo",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Hello World"
}
}
\],
"contact": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}'
簡訊收據樣本
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message_status",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"status": {
"value": "sent|delivered|read|failed",
"message": "Error: Sending failed due to invalid token"
}
\]
}'
場地 | 描述 | 驗證 |
---|---|---|
頻道編號 | 唯一頻道ID | 必需的。 唯一字段。 由 respond.io 產生。 |
聯絡人ID | 唯一聯絡人ID | 必需的。 唯一的 respond.io 聯絡人 ID。 最多 50 個字元。 |
事件類型 | 事件類型 | 必需的。 可用類型:message、message_echo 和 message_status。 |
事件.mld | 訊息 ID | 必需的。 唯一訊息 ID。 最多 50 個字元。 |
事件.時間戳 | UNIX 紀元時間(毫秒) | 必需的。 觸發回調的事件的時間。 |
事件.訊息.類型 | 訊息類型 | 必需的。 可用的訊息類型:文字、附件、位置和快速回覆。 有關其他訊息類型範例,請參閱訊息類型部分。 |
事件.訊息.文本 | 訊息文字 | 必需的。 最大長度 7,000 個字元。 |
事件.狀態.值 | 文字 | 如果 event.type 是 message_status,則必要。 可用的狀態值:已傳送、已送達、已讀和失敗。 |
事件.狀態.訊息 | 文字 | 如果 events.status.value 失敗則必需。 |
聯絡人的名字 | 名 | 選修的。 最多 50 個字元。 |
聯絡人姓氏 | 姓 | 選修的。 最多 50 個字元。 |
聯絡方式.profilePic | 個人資料圖片網址 | 選修的。 頭像大小不應超過 100 kb。 建議 720x720。 |
聯絡人區域設置 | 區域設定代碼 | 選修的。 請參閱此處查看值清單。 |
聯絡人國家代碼 | 國家/地區代碼 | 選修的。 2 個字母的國家代碼 - ISO ALPHA-2 代碼。 |
聯絡人時區 | 時區 | 選修的。 (最小值:-24)(最大值:24)。 |
聯絡方式 | 電子郵件 | 選修的。 最多 50 個字元。 |
聯絡電話 | 電話號碼 | 選修的。 最多 18 個字元。 |
聯繫語言 | 語言 | 選修的。 ISO 639-1。 |
回應 - 成功(HTTP 狀態 → 200)
"好的"
respond.io 將呼叫端點<API Base URL>/message
確保在你的 Web 伺服器的
/message
路由上應用了Outgoing Message代碼。
以下是 respond.io 呼叫端點的 cURL 範例:
curl -X POST \\
/message \\
-H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'cache-control: no-cache' \\
-H 'content-type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"message": {
"type": "text",
"text": "Hello World"
}
}'
回應 - 成功(HTTP 狀態 → 200)
{
"mId": "1640141607842"
}
在將訊息傳送到訊息服務提供者之前,需要在端點進行身份驗證。
這裡'是使用 express 中介軟體實現此目的的範例:
const {validationResult} = require('express-validator');
const validateToken = (req, res, next) => {
const apiToken = <>
const bearerToken = req.headers.authorization;
if (!bearerToken)
return res.send(401)
const token = bearerToken.substring(7, bearerToken.length);
if (apiToken !== token) {
return res.send(401)
}
next();
};
module.exports = {
validateToken
};
我們'已包含您可以在伺服器上測試的自訂頻道的範例。 查看我們的 GitHub 專案 這裡。
文字範例
{
"type": "text",
"text": "Welcome to respond.io",
}
場地 | 描述 | 驗證 |
---|---|---|
類型 | 訊息類型 | 必需的。 文字 |
文字 | 訊息文字 | 必需的。 最大長度 7,000 個字元。 |
媒體檔案範例
{
"type": "attachment",
"attachment": {
"type": "image|video|audio|file",
"url": "https://abc/japan.png",
"mimeType": "image/png",
"fileName":"company logo.png",
"description": "latest company logo"
}
}
場地 | 描述 | 驗證 |
---|---|---|
類型 | 訊息類型 | 必需的。 依戀。 |
附件類型 | 附件類型 | 必需的。 可用的附件類型:圖像、視訊、音訊和檔案。 |
附件.url | 網址 | 必需的。 最多 2,000 個字元。 確保它是一個公共鏈接,以便用戶或聯絡人能夠看到內容。 |
附件.mimeType | 附件的 MIME 類型 | 選修的 |
附件檔名 | 檔案名稱 | 選修的。 檔案名稱應包含副檔名。 最多 256 個字元(包括檔案副檔名)。 發送沒有副檔名或副檔名錯誤的檔案可能會導致聯絡人或使用者無法開啟該檔案。 |
附件描述 | 文件描述 | 選修的。 最多 256 個字元。 僅適用於 attachment.type = image。 |
確保附件的 URL 不會被瀏覽器強制下載。 HTTP 回應's Content-Disposition
標頭應具有預設值,即 inline
。
位置樣本
{
"type": "location",
"latitude": 0.123456,
"longitude": -0.1234,
"address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"
}
場地 | 描述 | 驗證 |
---|---|---|
類型 | 訊息類型 | 必需的。 地點。 |
緯度 | 座標 | 必需的。 緯度(±90°)在有效範圍內。 |
經度 | 座標 | 必需的。 經度(±180°)在有效範圍內。 |
地址 | 位置位址 | 選修的。 最多 256 個字元。 |
快速回覆範例
{
"type": "quick_reply",
"title": "Select your preferred language",
"replies": \[
"Malay",
"English"
\]
}
場地 | 描述 | 驗證 |
---|---|---|
類型 | 訊息類型 | 必需的。 快速回覆。 |
標題 | 快速回覆標題 | 必需的。 最多 256 個字元。 |
回覆 | 回覆文字 | 必需的。 最多 10 條回复,每條回复最多 256 個字元。 |
錯誤(HTTP 狀態 → 4xx)
步驟 1: 點選 設定 > 頻道
第 2 步: 找到自訂頻道 > 點選 管理
步驟 3: 在 自訂頻道設定頁 您將會看到以下設定:
頻道圖示 - 上傳一張圖片作為您的自訂頻道的圖示。
頻道名稱 - 頻道名稱可以更改,並在內部用於識別頻道。
發送訊息的 Webhook URL — 發送至此頻道的訊息的 Webhook URL。
傳入訊息的 Webhook URL — 此頻道傳入訊息的 Webhook URL。
ID 類型 — 這些用於使用者識別並用於與您的自訂整合伺服器通訊。
頻道 ID — 用於識別您的自訂頻道的唯一頻道 ID。
API 令牌 — 用於驗證使用者存取 API 的唯一識別碼。
步驟 4:點選 儲存變更 以更新自訂頻道配置。
是的,你可以。 以下是三個需要遵循的步驟:
在 respond.io 中,將其他平台的 目標 webhook URL 輸入到 傳入訊息的 Webhook URL 欄位中。
在另一個平台上,設定一個指向 respond.io 的 webhook URL ,讓聯絡人向您發送訊息。
您'將需要一個 自訂整合伺服器 來解釋來自 respond.io 和其他平台的 API,從而實現它們之間的訊息交換。
請務必與其他平台確認前兩個步驟是否可行。
當連接自訂頻道時,透過 webhook 傳送至 respond.io 的訊息將始終立即傳回 200 狀態碼,無論訊息是否成功傳遞到 respond.io。 這是由於 webhook 的性質所致,其設計目的是返回立即回應,而無需驗證訊息傳遞是否成功。