私はSmoochポストバックペイロードに基づいてスクリプトをある状態から別の状態に移行しようとしています。エラーコードH12を取得しています。Smooch:ポストバック依存状態遷移を行う方法?
はhttps://github.com/smooch/smooch-bot-example
例を考えてみましょう
start: {
receive: (bot) => {
return bot.say('Hi! I\'m Smooch Bot! Continue? %[Yes](postback:askName) %[No](postback:bye));
}
},
bye: {
prompt: (bot) => bot.say('Pleasure meeting you'),
receive:() => 'processing'
},
を次のように私は意図はのボットの状態がポストバックペイロードに応じて、移行だろうということですスクリプトhttps://github.com/smooch/smooch-bot-example/blob/master/script.jsを変更すると言います。
質問:どうすればいいですか?
私のアプローチは投げたこと、しかしgithub.com/smooch/smooch-bot-example/blob/master/heroku/index.js
のhandlePostback方法に
stateMachine.setState(postback.action.payload)
を追加しましたエラーコードH12。私も実験しました
stateMachine.transition(postback.action,postback.action.payload)
いいえ、利用できません。
返信いただきありがとうございます。私のOPで言及したように、私はこれがうまくいくと思っていたでしょう。なぜそれがしないのか分かりません。 smooch-botの例https://github.com/nbikar/smooch-bot-exampleをフォークし、https://postback-example1.herokuapp.com/にデプロイしました。ボットは状態遷移をしません。私は2つの変更を行ったhttps://github.com/nbikar/smooch-bot-example/blob/master/script.js#L18、https://github.com/nbikar/smooch-bot-example/blob/master /heroku/index.js#L118。ありがとうございます。 – sera
ポストバックレスポンスを、「はい」または「いいえ」と言っているユーザーメッセージであるかのように扱っているようですが、script.jsにはこれらのレスポンスを処理するものは何もありません。 –
script.js( "start"、 "bye"、 "askName" ..)の状態の名前は、ユーザーの応答とは関係がないことに注意してください。メッセージまたはポストバックイベントを自分で処理し、状態の遷移方法を定義する必要があります。たとえば、askNameハンドラは、ここで文字列 "finish"で解決することで終了することができます:https://github.com/nbikar/smooch-bot-example/blob/master/script.js#L35 stateMachineを使用することもできます。私の答えに示唆したようにsetState。 –