第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

作為對(duì)話框提示選擇的結(jié)果發(fā)送主動(dòng)消息

作為對(duì)話框提示選擇的結(jié)果發(fā)送主動(dòng)消息

C#
慕容森 2023-07-09 15:05:59
我對(duì) Microsoft Bot Framework 還很陌生。我有一個(gè)機(jī)器人,它接收來自一個(gè)用戶的消息,并且可以被另一個(gè)用戶查看。我想添加一項(xiàng)功能,讓查看者可以回復(fù)發(fā)件人。我認(rèn)為最好的方法是向原始發(fā)件人發(fā)送主動(dòng)消息。但是,我無法理解 Microsoft 提供的文檔,而且其他來源也相當(dāng)過時(shí)。現(xiàn)在這就是我所擁有的。MessageDetails.RelatesTo 包含 ConversationReference:private async Task<DialogTurnResult> FinalStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken){    var messageDetails = (MessageDetails)stepContext.Options;    var replyText = (string)stepContext.Result;    var messageactivity = messageDetails.RelatesTo.GetContinuationActivity();    await stepContext.Context.SendActivityAsync($"{messageDetails.RelatesTo}");    var client = new ConnectorClient(new Uri(messageactivity.ServiceUrl));    if (messageDetails.IsTrustedServiceUrl)    {        MicrosoftAppCredentials.TrustServiceUrl(messageactivity.ServiceUrl);    }    var triggerReply = messageactivity.CreateReply();    triggerReply.Text = $"NoReply from {stepContext.Context.Activity.Name}: {replyText}";    await client.Conversations.ReplyToActivityAsync(triggerReply);    await stepContext.Context.SendActivityAsync($"Your reply has been sent to {messageDetails.RelatesTo.User.Name}.");    return await stepContext.EndDialogAsync(messageDetails, cancellationToken);}這段代碼不起作用,我不完全確定為什么。(我也很感激任何有關(guān)如何解決問題的建議)。我意識(shí)到這并沒有利用微軟提供的示例代碼中顯示的控制器。老實(shí)說,我不明白通知控制器是如何工作的。因此,如果解決方案涉及到這一點(diǎn),最好能得到一些細(xì)節(jié)的解釋。
查看完整描述

1 回答

?
海綿寶寶撒

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊

解決你的問題

我的猜測(cè)是您收到此錯(cuò)誤:


System.ArgumentNullException: '值不能為空。參數(shù)名稱:clientId'


這是因?yàn)槟鷽]有指定appIdin new ConnectorClient。您可以忽略這一點(diǎn),因?yàn)槟詈米鲆恍╊愃频氖虑椋?/p>


await stepContext.Context.Adapter.ContinueConversationAsync("<yourAppId>", messageDetails.RelatesTo, async (ITurnContext turnContext, CancellationToken cancel) =>

{

? ? await turnContext.SendActivityAsync(triggerReply);

}, cancellationToken);

關(guān)鍵是確保您擁有ConversationReference需要向其發(fā)送主動(dòng)消息的用戶。如果您沒有,您應(yīng)該能夠CreateConversation建立一個(gè)

請(qǐng)注意,您還擁有:

if?(messageDetails.IsTrustedServiceUrl)
{
????MicrosoftAppCredentials.TrustServiceUrl(messageactivity.ServiceUrl);
}

這基本上是說,“如果我們已經(jīng)信任 serviceUrl,請(qǐng)?jiān)俅涡湃嗡?。相反,您需要?code>if (!messageDetails.IsTrustedServiceUrl)


主動(dòng)機(jī)器人如何工作

以下是主動(dòng)示例如何工作的簡(jiǎn)要說明。我建議下載并使用它以更好地理解。

  1. 機(jī)器人在api/messages(所有機(jī)器人都執(zhí)行此操作)和api/notify(只有此機(jī)器人執(zhí)行此操作)上建立偵聽器。

  2. 當(dāng)用戶向機(jī)器人發(fā)送消息時(shí),它會(huì)api/messages通過.ActivityHandler

  3. 對(duì)于任何消息,機(jī)器人都會(huì)保存對(duì)話參考

  4. 當(dāng)有人訪問時(shí)<theBotUrl>/api/notify,它會(huì)循環(huán)訪問每個(gè)保存的對(duì)話引用,調(diào)用ContinueConversation,并將消息發(fā)送給保存的對(duì)話引用中的所有用戶。


查看完整回答
反對(duì) 回復(fù) 2023-07-09
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)