簡體   English   中英

是否可以打開URL並通過自適應卡向機器人提交“操作”?

[英]Is it possible to open an URL and submit an “Action” to the bot via an adaptive card?

我想通過AdaptiveCard中的“ Action.OpenUrl”打開URL,並另外向機器人提供“ OK”狀態,以便瀑布對話框可以按預期繼續。

要知道的重要一點是,我想在Azure上為MS Teams部署機器人。 因此,我的第一個嘗試是將“ OK”提交給該bot,然后通過System.Diagnostics.Process.Start(url)從代碼中打開URL。 但它不再像Windows 10那樣工作,並引發“找不到目錄”異常。 我嘗試了一些解決該問題的方法。 例如,這個“ 這里 !!” 本地仿真器上對我有用,但是在MS Teams中部署后,它什么也沒做。所以現在,我回到考慮嵌套“ Action.XXX”的可能性AdaptiveCard JSON,它使我可以通過OpenUrl函數打開URL,並同時向bot發出類似於Submit函數的信號。有人遇到過此類問題嗎?

"actions": [
    {
      "type": "Action.Submit",
      "title": "Alles OK",
      "data": {
        "msteams": {
          "type": "imBack",
          "value": "OK"
        }
      }
    },

這就是MS Teams的自適應卡中的“操作按鈕”,它現在應觸發如下所示的c#Bot代碼中的“確定”案例,並同時打開可以添加到“ Action.OpenUrl”按鈕中的網址

if (stepContext.Result is string promptResult)
            {
                switch (promptResult)
                {
                    case "OK":
                        string url = CreateTicketResponses.CreateTicketLink(state.Summary, state.Description, state.Type);
                        System.Diagnostics.Process.Start(url);
                        //await stepContext.Context.SendActivityAsync(url);
                        state.Reset();
                        new DialogTurnResult(DialogTurnStatus.Complete);
                        return await stepContext.EndDialogAsync();

因此,如上所述,我想獲得一個自適應卡,該卡可以在新的瀏覽器選項卡中打開URL(在用戶可能擁有的任何系統上),並為漫游器提供結束對話框的指示符(EndDialogAsync())。

我認為您有兩種選擇:

  1. 您可以在自適應卡中收集數據,並讓機器人通過發送另一個卡(不一定是自適應的)來打開按鈕,該按鈕打開一個由自適應卡中的數據填充的URL,以使機器人響應提交操作。
  2. 您可以跳過Adaptive Card,而只發送鏈接到Jira的通用URL按鈕卡,然后用戶可以在Jira頁面上填寫數據,而不是已經在Adaptive Card中填寫了數據。

在這兩種情況下,漫游器都不會知道用戶已打開URL。 用戶要繼續對話時,必須在聊天窗口中輸入一些內容。 如果您確實希望機器人知道用戶何時單擊按鈕,那么您將必須設置一個特殊的Web應用程序,該應用程序將活動發送給機器人,然后重定向到您的Jira頁面,這將是困難/復雜的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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