1

postabck 機能を実際に使用する方法に関するドキュメントが見つからないようです。サーバー上の関数を呼び出しますか? pasees 値で ti は何をしますか?

%[Button label here](postback:PAYLOAD_HERE) // What is the payload?
4

2 に答える 2

4

ペイロードは、実際にはあなたが望むものです!

ポストバック ボタンは、Webhook へのトリガーとして使用できます。ユーザーがポストバック ボタンをタップすると、次のデータを含むペイロードが 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 でさえ何でもかまいません!

これがお役に立てば幸いです。

于 2016-05-13T20:44:30.527 に答える