如何使用 Smooch 回发?
How to use Smooch postbacks?
我似乎找不到任何关于如何实际使用 postabck 功能的文档。它会调用服务器上的函数吗? ti 与 pasees 值有什么关系?
%[Button label here](postback:PAYLOAD_HERE) // What is the payload?
负载是您希望您的机器人return。我不确定我描述它的方式是否是最好的,因为我是新手。可以这样想——如果你有一个标签为 %[Yes](postback:YES)
的按钮,那么当用户点击表示是的按钮时,就像他们输入 "yes."
一样
payload其实随便你!
回发按钮可用作您的网络钩子的触发器。当用户点击您的回发按钮时,有效负载将发送到您的网络钩子,其中包含以下数据:
{
"trigger": "postback",
"postbacks":[{
...
"action": {
"_id": "571530ee4fae94c32b78b170",
"type": "postback",
"text": "Read more",
"payload": "YOUR_PAYLOAD_HERE" // <---- your payload!
}
}],
...
}
有关完整的有效负载,请参阅此参考资料:http://docs.smooch.io/rest/#webhooks-payload
在您这边,您可以拥有自动消息、事件安排或任何您想要的东西。
一个简单的有效负载可以是 TELL_ME_JOKE
,在您的后端,您可以获取您的数据库以获取一个笑话,然后通过 Smooch API 发送消息以回复。
另一个有效负载可能是 RESERVE_MONDAY
。当用户点击该按钮时,您的 webhook 会收到 RESERVE_MONDAY
。然后您可以使用该值来了解下一步该做什么(调用您的应用程序以保留该时间段)。
这是一个简单的 Node.js 实现:
const express = require('express');
const SmoochCore = require('smooch-core');
const smoochApi = new SmoochCore({
keyId: 'some-key',
secret: 'some-secret',
scope: 'app'
});
express.Router().post('/smooch/webhooks', (req, res) => {
const smoochPayload = req.body.postbacks[0].action.payload;
const userId = req.body.appUser._id;
if (smoochPayload === 'TELL_ME_JOKE') {
smoochApi.conversations.sendMessage(userId, {
text: 'A cow walks into a bar...',
role: 'appMaker'
});
} else if (smoochPayload === 'RESERVE_MONDAY') {
CalendarController.reserve(userId, 'monday');
}
res.end();
});
使用负载还允许您使用不同的按钮标签,但保持相同的负载(即不同的翻译)。
注意:如果你愿意,它甚至可以是任何东西 JSON!
希望对您有所帮助!
我似乎找不到任何关于如何实际使用 postabck 功能的文档。它会调用服务器上的函数吗? ti 与 pasees 值有什么关系?
%[Button label here](postback:PAYLOAD_HERE) // What is the payload?
负载是您希望您的机器人return。我不确定我描述它的方式是否是最好的,因为我是新手。可以这样想——如果你有一个标签为 %[Yes](postback:YES)
的按钮,那么当用户点击表示是的按钮时,就像他们输入 "yes."
payload其实随便你!
回发按钮可用作您的网络钩子的触发器。当用户点击您的回发按钮时,有效负载将发送到您的网络钩子,其中包含以下数据:
{
"trigger": "postback",
"postbacks":[{
...
"action": {
"_id": "571530ee4fae94c32b78b170",
"type": "postback",
"text": "Read more",
"payload": "YOUR_PAYLOAD_HERE" // <---- your payload!
}
}],
...
}
有关完整的有效负载,请参阅此参考资料:http://docs.smooch.io/rest/#webhooks-payload
在您这边,您可以拥有自动消息、事件安排或任何您想要的东西。
一个简单的有效负载可以是 TELL_ME_JOKE
,在您的后端,您可以获取您的数据库以获取一个笑话,然后通过 Smooch API 发送消息以回复。
另一个有效负载可能是 RESERVE_MONDAY
。当用户点击该按钮时,您的 webhook 会收到 RESERVE_MONDAY
。然后您可以使用该值来了解下一步该做什么(调用您的应用程序以保留该时间段)。
这是一个简单的 Node.js 实现:
const express = require('express');
const SmoochCore = require('smooch-core');
const smoochApi = new SmoochCore({
keyId: 'some-key',
secret: 'some-secret',
scope: 'app'
});
express.Router().post('/smooch/webhooks', (req, res) => {
const smoochPayload = req.body.postbacks[0].action.payload;
const userId = req.body.appUser._id;
if (smoochPayload === 'TELL_ME_JOKE') {
smoochApi.conversations.sendMessage(userId, {
text: 'A cow walks into a bar...',
role: 'appMaker'
});
} else if (smoochPayload === 'RESERVE_MONDAY') {
CalendarController.reserve(userId, 'monday');
}
res.end();
});
使用负载还允许您使用不同的按钮标签,但保持相同的负载(即不同的翻译)。
注意:如果你愿意,它甚至可以是任何东西 JSON!
希望对您有所帮助!