[英]Manage a long-running operation in MS Teams Bot
我正在使用以下示例/文章來管理 MS Teams Bot 中的長時間運行的操作。
在第 5 步中,正在創建 DirectLineClient,並使用 PostActivityAsync 將 Event Activity 發送到 Bot。
var responseActivity = new Activity("event");
responseActivity.Value = originalActivity;
responseActivity.Name = "LongOperationResponse";
responseActivity.From = new ChannelAccount("GenerateReport", "AzureFunction");
var directLineSecret = Environment.GetEnvironmentVariable("DirectLineSecret");
using(DirectLineClient client = new DirectLineClient(directLineSecret))
{
var conversation = await client.Conversations.StartConversationAsync();
await client.Conversations.PostActivityAsync(conversation.ConversationId, responseActivity);
}
但是,我需要上面的示例來為 MS Teams Bot 而不是 DirectLineClient 工作。
我使用了 Microsoft.Bot.Connector.ConnectorClient 但 StartconversationAsync 和 PostActivityAsync 方法不可用。 我嘗試了 Microsoft.Bot.Connector.ConnectorClient 中可用的方法
但是所有方法都因錯誤請求而失敗,錯誤如響應中所示:{"error":{"code":"BadArgument","message":"Unknown activity type"}}
newActivity 創建如下:
var messagnewActivity = new Activity("event");
newActivity.Value = originalActivity;
newActivity.From = new ChannelAccount("GenerateReport", "AzureFunction");
newActivity.Type = "event";
newActivity.Conversation = new ConversationAccount { Id = originalActivity.Conversation.Id };
newActivity.ChannelId = originalActivity.ChannelId;
有人可以建議我如何將活動(事件活動類型)傳遞給 MS Teams Bot。
謝謝加根
我對 Direct Line 不是很熟悉,但我認為它實際上是 Teams 的一種替代類型的機器人,因此如果您嘗試在 Teams 內部執行此操作,它可以解釋問題。 原則上,基本思想很簡單:
這是為了通知您,在此之前的某個時候我遇到了同樣的問題,然后我在調試時發現了代碼中的一個調整。 當它遞歸調用兩次時,Activity Id 與前一個相同。 您可以檢查活動 id 是否相同,然后返回請求,否則返回請求 go 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.