透過這種集成,您的團隊可以透過自訂實現透過任何訊息管道與您的客戶聊天。
步驟 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": "[email protected]",
"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": "[email protected]",
"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 | 必需的。 唯一的 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
路由上應用了傳出訊息代碼。
以下是 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": "歡迎來到 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
標頭應具有預設值,即 內聯
。
{
"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": "選擇您的首選語言",
"replies": \[
"馬來語",
"英語"
\]
}
場地 | 描述 | 驗證 |
---|---|---|
類型 | 消息類型 | 必需的。 快速回覆。 |
標題 | 快速回覆標題 | 必需的。 最多 256 個字元。 |
回覆 | 回覆文字 | 必需的。 最多回覆 10 條。每個回覆 256 個字元。 |
步驟 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 的性質所致,其設計目的是返回立即回應而不驗證訊息傳遞是否成功。