我似乎找不到任何关于如何实际使用postabck功能的文档。它会调用服务器上的函数吗?我对过路人有什么价值?
%[Button label here](postback:PAYLOAD_HERE) // What is the payload?发布于 2016-05-13 20:44:30
有效载荷实际上是你想要的!
回发按钮可以用作指向webhook的触发器。当用户点击回发按钮时,将使用以下数据向web钩子发送有效负载:
{
"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发送一条消息来回复。
另一个有效载荷可能是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!
我希望这能帮到你!
发布于 2016-05-13 20:05:15
有效载荷是你想要你的机器人返回的东西。我不确定我的描述方式是否是最好的,因为我是新手。可以这样想--如果您有一个标记为%[Yes](postback:YES)的按钮,那么当用户单击表示“是”的按钮时,就会像键入“是”一样。
https://stackoverflow.com/questions/37215054
复制相似问题