2016-05-13 7 views
1

postabck機能を実際に使用する方法に関するドキュメントは見つかりません。それはサーバー上の関数を呼び出しますか? tiはpaseesの価値と何をしていますか?Smoochポストバックの使い方は?

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

答えて

4

実際にはペイロードは必要なものです。

ポストバックボタンは、Webhookのトリガーとして使用できます。あなたが自動化されたメッセージを持つことができ、あなたの側ではhttp://docs.smooch.io/rest/#webhooks-payload

:このリファレンスを参照してください

{ 
    "trigger": "postback", 
    "postbacks":[{ 
     ... 
     "action": { 
      "_id": "571530ee4fae94c32b78b170", 
      "type": "postback", 
      "text": "Read more", 
      "payload": "YOUR_PAYLOAD_HERE" // <---- your payload! 
     } 
    }], 
    ... 
} 

完全なペイロードの場合:ユーザーがポストバックボタンをタップすると、ペイロードは、以下のデータを使用してウェブフックに送信されます、イベントのスケジューリング、または何でもできます。

単純なペイロードはTELL_ME_JOKEとなります。バックエンドでは、ジョーク用にデータベースを取得してからSmooch APIを使用して返信することができます。

もう1つのペイロードはRESERVE_MONDAYです。ユーザーがそのボタンをタップすると、WebHookはRESERVE_MONDAYを受信します。次に、その値を使用して、次に何をするかを知ることができます(そのタイムスロットを予約するためにアプリケーションを呼び出す)。

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(); 
}); 

ペイロードを使用しても、あなたは別のボタンのラベルを使用しますが、同じペイロード(すなわち、異なる翻訳を。)維持することができます:

は、ここで簡単なNode.jsの実装です。

注:ご希望の場合は、JSONでも構いません。

私はこれがあなたを助けることを願っています!

-1

ペイロードは、ボットに返すものです。私はこれを初めて知ったので、それを記述する自分の方法が最善であるかどうかは分かりません。このように考える - %[Yes](postback:YES)というラベルの付いたボタンがある場合、ユーザーが「はい」と言うボタンをクリックすると、「はい」と入力したようになります。

+0

これはwebhookがhttps://github.com/esthercrawford/EstherBotに実装されている方法ですが、Smooch webhooksの一般的な動作とは異なります –

関連する問題