2017-03-22 8 views
0

したがって、ノードjsを使用してメッセンジャーボットを構築します。どのようにして作ることができます。メッセージを作成する方法Messengerボットnodejs

  1. ユーザーが(右のコマンドを除く)ランダムなテキストを送信するたびにボットは、「私はそのコマンドを認識カント申し訳ありませんが、」返信します...
  2. ユーザーからのテキストを保存するボットを作成する方法と、後で確認しますか?例: USER:こんにちは。 BOT:それ以外は? USER:世界。 BOT:それ以外は? USER:done。 BOT:わかった、 BOT:1.こんにちは BOT:2.世界 BOT:正しいですか?

ここには私の現在のスクリプトはありません。 1:

function replyByText(sender, text, payload) { 
let kata = text.toLowerCase() 
let date = new Date() 
let current_hour = date.getHours() 
if (S(kata).contains('produk') || S(kata).contains('produknya') || S(kata).contains('product')) { 
    sendOpeningProduct(sender, "Wait Sec..") 
} 

if (S(kata).contains('layanan')|| S(kata).contains('services')|| S(kata).contains('diagnose')){ 
    // sendOpeningServices(sender, 'Wait sec..') 
    sendPlainMessage(sender, 'Hi, what concern you most about your health? Please describe your symptoms..') 
} 

if (S(kata).contains('health symptoms')){ 
    sendPlainMessage(sender, 'Tell me What You Feel..') 
} 

if (S(kata).contains('im feeling sick') || S(kata).contains('im feeling unwell') || S(kata).contains('im feeling dizzy') || S(kata).contains('dizzy') || S(kata).contains('sick')){ 
    sendPlainMessage(sender, 'How old are you ?') 
} 

if (S(kata).contains('3') || S(kata).contains('4') || S(kata).contains('5') || S(kata).contains('6') || S(kata).contains('7') || S(kata).contains('8') || S(kata).contains('9')){ 
    sendPlainMessage(sender, 'I see...') 
    sendOpeningProductKids(sender, "Just try our products") 
}} 

すべてのヘルプは、あなたの最初の質問のために...

答えて

1

ソリューション:NO 2に

function replyByText(sender, text, payload) { 
    let kata = text.toLowerCase() 
    let date = new Date() 
    let current_hour = date.getHours() 

    if (S(kata).contains('produk') || S(kata).contains('produknya') || S(kata).contains('product')) { 
     sendOpeningProduct(sender, "Wait Sec..") 
    } 

    else if (S(kata).contains('layanan')|| S(kata).contains('services')|| S(kata).contains('diagnose')){ 
     // sendOpeningServices(sender, 'Wait sec..') 
     sendPlainMessage(sender, 'Hi, what concern you most about your health? Please describe your symptoms..') 
    } 

    else if (S(kata).contains('health symptoms')){ 
     sendPlainMessage(sender, 'Tell me What You Feel..') 
    } 

    else if (S(kata).contains('im feeling sick') || S(kata).contains('im feeling unwell') || S(kata).contains('im feeling dizzy') || S(kata).contains('dizzy') || S(kata).contains('sick')){ 
     sendPlainMessage(sender, 'How old are you ?') 
    } 

    else if (S(kata).contains('3') || S(kata).contains('4') || S(kata).contains('5') || S(kata).contains('6') || S(kata).contains('7') || S(kata).contains('8') || S(kata).contains('9')){ 
     sendPlainMessage(sender, 'I see...') 
     sendOpeningProductKids(sender, "Just try our products") 
    } 
    else{ 
     sendPlainMessage(sender, 'Sorry I cant recognize that command') 
    } 

} 

ソリューション:

あなたはあなたのウェブフックへの各呼び出しの間で状態を保存する必要があります。次の手順を実行します。

この問題を解決する方法はいくつかあります。この方法でこの問題を解決できます。 Webhookコールごとにcovesationモデル/オブジェクトを更新して状態を保存します。 facebook apiから取得した独自のpsidを主キーまたはモデル/オブジェクトの複合キーの一部として使用する

0

に感謝します、スイッチ/ case文は理想的です。いずれのケースも満たされない場合、デフォルトアクションは「申し訳ありません、そのコマンドを認識できません」です。ノー1へ

1

Messengerボットの開発を比較的容易にするnodejsフレームワークであるBootBot(https://github.com/Charca/bootbot)を試すこともできます。それは簡単にユーザーの入力を確認し、会話のコンテキストを保存する機能があります。