通过这种集成,您的团队可以通过自定义实现通过任何消息渠道与您的客户聊天。
步骤 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 '授权:Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H '缓存控制:无缓存' \\
-H '内容类型:application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"事件": \[
{
“类型”:“消息”,
“mId”:“xcvzzxcxczxczxc”,
“时间戳”:2132131321000,
“消息”:{
“类型”:“文本”,
“文本”:“Hello World”
}
}
\],
“联系人”:{
“firstName”:“John”,
“lastName”:“Doe”,
“profilePic”:“”,
“countryCode”:“MY”,
“电子邮件”:“[email protected]”,
“电话”:“+60177872890”,
“语言”:“en”
}
}'
消息回显示例
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H '授权:Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H '缓存控制:无缓存' \\
-H '内容类型:application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"事件": \[
{
“类型”:“message\_echo”,
“mId”:“xcvzzxcxczxczxc”,
“时间戳”:2132131321000,
“消息”:{
“类型”:“文本”,
“文本”:“Hello World”
}
}
\],
“联系人”:{
“firstName”:“John”,
“lastName”:“Doe”,
“profilePic”:“”,
“countryCode”:“MY”,
“电子邮件”:“[email protected]”,
“电话”:“+60177872890”,
“语言”:“en”
}
}'
短信收据样本
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H '授权:Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H '缓存控制:无缓存' \\
-H '内容类型:application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"事件": \[
{
“类型”:“message\_status”,
“mId”:“xcvzzxcxczxczxc”,
“时间戳”:2132131321000,
“状态”:{
“值”:“已发送|已递送|已读取|失败”,
“消息”:“错误:由于令牌无效,发送失败”
}
\]
}'
场地 | 描述 | 验证 |
---|---|---|
通道编号 | 唯一频道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 '授权:Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H '缓存控制:无缓存' \\
-H '内容类型:application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"message": {
"type": "text",
“文本”:“Hello World”
}
}'
响应 - 成功(HTTP 状态 → 200)
{
“mId”:“1640141607842”
}
在将消息发送到消息服务提供商之前,需要在端点进行身份验证。
这里'是使用 express 中间件实现此目的的一个例子:
const {validationResult} = require('express-validator');
const validToken = (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();
};
模块.exports = {
validateToken
};
我们'已包含您可以在服务器上测试的自定义频道的示例。 在这里查看我们的 GitHub 项目 。
{
"type": "text",
"text": "欢迎来到 respond.io",
}
场地 | 描述 | 验证 |
---|---|---|
类型 | 消息类型 | 必需的。 文本 |
文本 | 消息文本 | 必需的。 最大长度 7,000 个字符。 |
{
"type": "附件",
"附件": {
"type": "图像|视频|音频|文件",
"url": "https://abc/japan.png",
"mimeType": "图像/png",
"fileName":"公司徽标.png",
"description": "最新公司徽标"
}
}
场地 | 描述 | 验证 |
---|---|---|
类型 | 消息类型 | 必需的。 依恋。 |
附件类型 | 附件类型 | 必需的。 可用的附件类型:图像、视频、音频和文件。 |
附件.url | 网址 | 必需的。 最多 2,000 个字符。 确保它是一个公共链接,以便用户或联系人能够看到内容。 |
附件.mimeType | 附件的 MIME 类型 | 可选的 |
附件文件名 | 文件名称 | 选修的。 文件名应该包含扩展名。 最多 256 个字符(包括文件扩展名)。 发送没有扩展名或扩展名错误的文件可能会导致联系人或用户无法打开该文件。 |
附件.描述 | 文件描述 | 选修的。 最多 256 个字符。 仅适用于 attachment.type = image。 |
确保附件 URL 不被浏览器强制下载。 HTTP 响应's Content-Disposition
标头应该具有默认值,即 内联
。
{
"type": "位置",
"纬度": 0.123456,
"经度": -0.1234,
"地址": "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 的性质所致,其设计目的是返回立即响应而不验证消息传递是否成功。
相关文章 :woman_technologist: