2016-05-12 24 views
1

私のボットでは、ユーザーから添付ファイルを受け取りたいと思います。 私はそれらを受信する方法を知っている:ApiController、私はそれらのファイルを持つことができます知っているこの方法:彼らはクラスMessagesControllerにプライベート文字列のリストであるlstFilesに到着したものを記憶しているものを私がここでやっているユーザーと会話ごとに添付ファイルを処理するbotframework

public async Task<Message> Post([FromBody]Message message) 
     {   
      if (message.Type == "Message") 
      { 
       if (message.Attachments.Count > 0) 
       { 
        foreach (var afile in message.Attachments) 
        { 
         lstFiles.Add(afile.ContentUrl); 
        }         
       }  

そしてそのURL

ユーザーが行うイベントで(私がFormFlowを使用しています)の質問に答える終了すると、私はAzureのストレージテーブルに彼の入力を保存

 internal static IDialog<VGMData> MakeRootDialog() 
      {   
       return Chain.From(() => FormDialog.FromForm(VEMData.BuildForm))     
          .Do(async (context, order) => 
          { 
    var completed = await order;        
    StoreAndSendEmailConfirmations(completed); 
    await context.PostAsync("And I am done... .."); 
} 

は、私は添付ファイルへのアクセス権を持つことができる方法を理解することはできません〜でe。ユーザーが投稿したファイルとその会話の中で、空白のブロブにダウンロードとその後の保存を開始できるように機能する。私が持っているように見えるのは、ユーザーデータの返信であるが添付ファイルなしの「コンテキスト」と「注文」だけです。 私はそこにlstFilesを得ることができますが、それは異なる同時ユーザーと会話のファイルを含んでいる可能性があります。事前に

おかげで、 ローマ

答えて

2

あなたはPerUserPerConversationデータバッグに添付ファイルのリストを格納検討する必要があります。このようにして、その会話に参加しているユーザーに関連するデータを確実に取得することができます。

Hereは、ボットトラックの状態に関するドキュメントです。

+0

ありがとうございます、私は尋ねる前にボットの状態に関する文書を読みました。私の混乱が起こるのは、私がReplyMesageを実際に使用することは決してないということです。FormFlowを介してすべてが行われ、私の問題は、メッセージデータバッグにアクセスする方法がわからないということです。最後のイベントは – user2275313

+0

です。私はcontext.PerUserInConversationData経由でアクセスしているあなたの助言をありがとう。 – user2275313

関連する問題