[英]Teams UpdateActivity events difference when you test in newly created teams
我們有一個團隊機器人,可以在 MS 團隊中發布消息。 新對話的第一個活動總是一張自適應卡片,我們偶爾會用一張新卡片更新它。 這一切正常,直到我用這個機器人組建了一個新團隊。
我們正在嘗試使用 UpdateActivityAsync 進行更新,返回 NotFound。
經過一些故障排除后,我注意到以下幾點:
我們使用舊的 bot 框架版本 3,我知道它不再維護,但據我所知,它應該仍然有效(不打算停止運行)。 還考慮到上述幾點(特別是第 4 點),我希望它在后台使用相同的調用。
因此,這適用於較舊的團隊,但不適用於使用 @thread.tacv2 的團隊
await connector.Conversations.UpdateActivityAsync(
teamsConversationId,
activityId,
(Activity)messageWithCard);
對於使用@thread.tacv2
團隊,我們現在必須使用它
var messageWithText = Activity.CreateMessageActivity();
messageWithText.ChannelId = teamsConversationId;
messageWithText.Id = activityId;
messageWithText.Type = ActivityTypes.Message;
messageWithText.Text = "Updated";
await connector.Conversations.UpdateActivityAsync(
teamsConversationId,
activityId,
(Activity)messageWithText);
await connector.Conversations.UpdateActivityAsync(
teamsConversationId,
activityId,
(Activity)messageWithCard);
異常沒有提供太多細節:
操作返回了無效的狀態代碼“NotFound”
未找到對話。
有誰知道如何避免團隊之間的這種變化並允許使用卡片更新活動?
另外(這不太重要,但我認為添加它很有用)我注意到有時(我現在已經看過兩次)Teams 似乎無法呈現自適應卡片並顯示 URIObject XML,其中包含錯誤:cards.unsupported . 但是,如果我退出客戶端並重新啟動它,它會呈現出很好的效果……到目前為止,我從未在舊頻道中看到過這種情況。
Teams 客戶端版本 1.3.00.362(64 位)(無開發模式)。 普通 Azure 租戶(無預覽/試用)
編輯 11/05/2020 似乎這也發生在具有“舊”名稱(@thread.skype)的團隊中。 所以 '@thread.tacv2' 似乎無關。
我們無法在您提供的確切時間戳處找到日志,但確實在這些日期找到了對話 ID 的日志,並在 UTC 中看到了具有相同分鍾和秒數的 404。 我們假設提供的時間戳以不同的時區表示。
從日志中,我們看到以下模式:
Bot sends PUT activity with card - 404 returned
Bot sends PUT activity with text - 200 returned
Bot sends PUT activity with card - 200 returned
這看起來與您在原始帖子中分享的模式相同。
有一種情況會導致 404 在 PUTS 上返回,每當機器人嘗試在將新消息發送到回復鏈后使用完全相同的卡片更新現有卡片消息時
這些是回購步驟:
Bot send card to reply chain (can be root message or reply message)
Any user sends a message to the chain
Bot attempts to update message with the exact same card
您的機器人是否有可能遇到這種情況? 有沒有辦法檢查您的機器人在第一個 PUT 請求中發送的卡片是否與原始消息中已經存在的卡片相同
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.