2016-05-12 21 views
1

在我的機器人我想接受來自用戶的附件。 我知道如何獲得他們: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); 
        }         
       }  

什麼,我這裏做的是保存它們,因爲它們在lstFiles到達那是一個字符串私有類MessagesController的名單:ApiController,這樣,我知道我可以有這些文件且其網址

當用戶完成回答的進行事件的問題(我用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... .."); 
} 

我不明白我怎麼能有機會獲得附加的文件在th e。執行功能,以便我可以啓動下載和隨後存儲在azure blob中用於用戶和他的對話中提交的文件。只有我似乎有'上下文'和'訂單'是用戶數據回覆,但沒有附件文件。 我可以到那裏lstFiles,但恐怕它可能包含來自不同的同時用戶和對話的文件。

在此先感謝, 羅馬

回答

2

你可能要考慮存儲在PerUserPerConversation數據包的附件列表。通過這種方式,您可以確保您將檢索與參與該對話的用戶相關的數據。

Here是關於機器人跟蹤狀態的文檔。

+0

謝謝,我在提問之前閱讀了關於機器人狀態的文檔。我的困惑來到的地方是我從來沒有使用過ReplyMesage,一切都通過FormFlow進行,我的問題是我不知道如何從內部的.Do事件中獲取消息數據包。 – user2275313

+0

我明白,In .Do事件我通過context.PerUserInConversationData訪問感謝您的建議。 – user2275313