簡體   English   中英

在新創建的團隊中進行測試時,團隊 UpdateActivity 事件會有所不同

[英]Teams UpdateActivity events difference when you test in newly created teams

我們有一個團隊機器人,可以在 MS 團隊中發布消息。 新對話的第一個活動總是一張自適應卡片,我們偶爾會用一張新卡片更新它。 這一切正常,直到我用這個機器人組建了一個新團隊。

我們正在嘗試使用 UpdateActivityAsync 進行更新,返回 NotFound。

經過一些故障排除后,我注意到以下幾點:

  1. 新團隊有一個不同的名稱:19:...@thread.tacv2 而不是 19:...@thread.skype。
  2. 當我使用較老的團隊時,它會按預期工作。
  3. 當我僅使用文本更新活動時(因此沒有自適應卡作為附件),它將始終按預期更新。
  4. 使用文本更新后,我們可以使用自適應卡進行一次更新。 使用自適應卡進行一次更新后,任何后續使用自適應卡的更新都將返回 NotFound。
  5. 因此,作為一種解決方法,我現在首先使用文本進行更新,然后立即使用卡發送更新。 這是一個糟糕的 UI 事情(閃爍),但它現在有效。

我們使用舊的 bo​​t 框架版本 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM