2016-11-10 7 views
1

ボットのフレームワークにユーザとボットのチャットを完全に取得する機能があるかどうかを知りたい。私は公式のドキュメンテーションを見てきましたが、私が理解しているのは、その文脈にしかチャットデータを保存できないということです。まったくデータを保存する必要がある場合は、そのデータを処理する必要があります。私はこれを使用してみました 、ボットのフレームワーク内のボットチャットデータをフォームフローに変換する

StateClient sc = activity.GetStateClient(); 
BotData userData1 = 
sc.BotState.GetConversationData(activity.ChannelId, activity.Conversation.Id); 

userData1.Data = userData1.Data + activity.Text; 
sc.BotState.SetConversationData(activity.ChannelId, activity.Conversation.Id, userData1); 

これは、ユーザーデータを保持し、私は、フォームの流れでそれを永続化する方法で立ち往生しています。 ボットとユーザーのデータをに保存する方法がわかりません。フォームの流れ SetConversationDataを使用しています。私はフォームフローのプロンプトメッセージを持続させるためにボットを必要とします。だから、私は完全な会話のb/wユーザーとボットを持っています。

答えて

0

このチュートリアルでは、役立つことがあります。 Introduction To FormFlow With The Microsoft Bot Framework

、ユーザからのデータを自動的にFormFlow中に永続化されます。 FormFlowが完了すると、あなたがこのようにそれを持続することができます応答のための

public static IForm<ProfileForm> BuildForm() 
{ 
    return new FormBuilder<ProfileForm>() 
      .Message("Welcome to the profile bot!") 
      .OnCompletion(async (context, profileForm) => 
      { 
       // Set BotUserData 
       context.PrivateConversationData.SetValue<bool>(
        "ProfileComplete", true); 
       context.PrivateConversationData.SetValue<string>(
        "FirstName", profileForm.FirstName); 
       context.PrivateConversationData.SetValue<string>(
        "LastName", profileForm.LastName); 
       context.PrivateConversationData.SetValue<string>(
        "Gender", profileForm.Gender.ToString()); 
       // Tell the user that the form is complete 
       await context.PostAsync("Your profile is complete."); 
      }) 
      .Build(); 
} 
+0

感謝。私はそれを使ってみました。しかし、この方法では、私はフォーム構築に使用したフィールドの価値を得ます。しかし、会話データ全体が必要でした。会話ID ** –

+0

を使用して会話全体をキャプチャする方法をご存じですか?「Microsoft Bot Frameworkを使用してSQL Serverデータベースを実装する」http://aihelpwebsite.com/Blog/EntryId/13/Implementing-A -SQL-Server-Database-With-The-Microsoft-Bot-Framework –

+0

ありがとうございます:)それを調べます! :) –