[英]How to edit MS Bot Framework Adaptive Card on submit action
[英]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())。
我認為您有兩種選擇:
在這兩種情況下,漫游器都不會知道用戶已打開URL。 用戶要繼續對話時,必須在聊天窗口中輸入一些內容。 如果您確實希望機器人知道用戶何時單擊按鈕,那么您將必須設置一個特殊的Web應用程序,該應用程序將活動發送給機器人,然后重定向到您的Jira頁面,這將是困難/復雜的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.