我似乎無法找到有關如何實際使用postabck功能的任何文檔。它是否在服務器上調用函數? ti與pasees的價值是什麼?如何使用Smooch回發?
%[Button label here](postback:PAYLOAD_HERE) // What is the payload?
我似乎無法找到有關如何實際使用postabck功能的任何文檔。它是否在服務器上調用函數? ti與pasees的價值是什麼?如何使用Smooch回發?
%[Button label here](postback:PAYLOAD_HERE) // What is the payload?
有效載荷實際上是你想要的!
回傳按鈕可以用作您的webhook的觸發器。當用戶點擊您的回發按鈕,有效載荷將被髮送到你的網絡掛接數據如下:
{
"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!
我希望這能幫助你!
負荷是你希望你的機器人返回什麼。我不確定我的描述是否是最好的,因爲我是新手。想想這樣 - 如果你有一個標有%[Yes](postback:YES)
的按鈕,那麼當用戶點擊yes按鈕時,就好像他們鍵入單詞「yes」。
這是如何在https://github.com/esthercrawford/EstherBot中實現webhook,但它不是Smooch webhook在一般情況下的工作方式 –