2016-07-22 14 views
0

チュートリアルと情報が不足しているため、ボットの情報をどのように保存することができません。BotframeworkどのようにしてSelctionを保存するのですか

public enum City 
    { 
     Cleveland, Columbus, Kentucky, Mason, Akron 
    }; 

    [Serializable] 
    public class SandwichOrder 
    { 
     [Prompt("Please select what {&} you are in? {||}")] 
     public City? City; 
     public static IForm<SandwichOrder> BuildForm() 
     { 
      return new FormBuilder<SandwichOrder>() 
        .Message("Welcome to the my bot!") 
        .Build(); 
     } 
    }; 

私はちょうど私がそれをどのように行うことができたら、街をお願いしたい:私はこのような選択を行うために、ユーザーに尋ねるとしましょうか?どのように私はユーザーの選択の価値を保持し、最初のユーザーのやり取りである場合にのみこのメソッドを呼び出すことができます。

コントローラクラス:すべての会話を横切ってユーザに対してグローバル

のuserData格納情報:

internal static IDialog<SandwichOrder> MakeRootDialog() 
     { 
      return Chain.From(() => FormDialog.FromForm(SandwichOrder.BuildForm)); 
     } 
     [ResponseType(typeof(void))] 
     public virtual async Task<HttpResponseMessage> Post([FromBody] Activity activity) 
     { 
      if (activity != null) 
      { 
       // one of these will have an interface and process it 
       switch (activity.GetActivityType()) 
       { 
        case ActivityTypes.Message: 
         await Conversation.SendAsync(activity, MakeRootDialog); 
         break;     
       } 
      } 
      var response = Request.CreateResponse(HttpStatusCode.OK); 
      return response; 
     } 

答えて

0

SDKは、ユーザまたは会話に関するデータを永続化のいくつかの方法を含みます。

conversationDataは、1つの会話の情報をグローバルに格納します。このデータは会話内の全員に表示されるので、そこに保存されているものに注意を払う必要があります。これはデフォルトで無効になっており、botsのpersistConversationData設定を使用して有効にする必要があります。

privateConversationDataは、1つの会話に対してグローバルに情報を格納しますが、現在のユーザーのプライベートデータを格納します。このデータはすべてのダイアログにまたがるので、会話が終了したときにクリーンアップしたい一時的な状態を保存するのに便利です。

dialogDataは、1つのダイアログインスタンスの情報を保持します。これは、滝の階段の間に一時的な情報を格納するために不可欠です。

ボットビルダーを使用してビルドされたボットは、ステートレスに設計されているため、複数の計算ノード間で容易に拡張できます。そのため、グローバル変数や関数クロージャを使用して状態を保存する誘惑を避けるべきです。そうすることで、あなたのボットをスケールアウトするときに問題が発生します。代わりに、上記のデータバッグを活用して一時的かつ永続的な状態を維持してください。ここ

さらに詳しい情報:

https://docs.botframework.com/en-us/node/builder/guides/core-concepts/#adding-dialogs-and-memory

関連する問題