2017-12-07 8 views
1

アダプティブカードで2つのアクションを送信する方法を手助けできる人はいますか? ユーザーが[受諾]ボタンをクリックすると、別のダイアログが開始する必要があります。 ユーザーが[拒否]ボタンをクリックすると、再起動ダイアログが開始されます。2つのアクション(Accept/Decline)を持つAdaptivecard

JSONレイアウト

 "actions": [ 
     { 
      "type": "Action.Submit", 
      "title": "Accept", 
      "data": { "choice": "Accept"} 
     }, 
     { 
      "type": "Action.Submit", 
      "title": "Decline", 
      "data": { "choice": "Decline"} 
     } 
    ] 

コード:

bot.dialog('overview', function (session, options) { 
    if (session.message && session.message.value) { 
     if(choice == "Accept"){ 
      session.beginDialog('otherDialog'); 
     } else if (choice == "Decline"){ 
      session.beginDialog('restart'); 
     } 
     return; 
    } 
+0

あなたが適応カードの他の機能を使用しています上の財産になりますあなたのカード、またはあなたがmaybかもしれない'PromptDialog'を使用しますか? – JasonSowers

+0

アダプティブカード(および完全なアダプティブカードJSON - スニペットではありません)を送信する方法を示す完全なコードを投稿できますか? – nilsw

+0

代わりに 'builder.Prompt.confirm()'(別名選択プロンプト)を使うことを考えましたか?これは、バイナリ選択ワークフローを処理する最も簡単な方法です。 https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-dialog-prompt – nilsw

答えて

2

選択.VALUE

bot.dialog('overview', function (session, options) { 
    if (session.message && session.message.value) { 
     session.endDialog(); 
     switch (session.message.value.choice) { 
      case 'Accept': 
       session.beginDialog('otherDialog'); 
       break; 
      case 'Decline': 
       session.beginDialog('restart'); 
       break;     
      }    
     return; 
    }else{ 
     //show the card, since there has not been a choice 
     var cardMessage = require('./overviewCard.json'); 
     cardMessage.address = session.message.address 
     bot.send(cardMessage) 
    } 
}) 
+0

動作していないようですが、私はプロンプトに変更するつもりです。これは何週間も続きました。皆さん、助けてくれてありがとう! – KHaemels

関連する問題