1 回答

TA貢獻1809條經驗 獲得超8個贊
解決你的問題
我的猜測是您收到此錯誤:
System.ArgumentNullException: '值不能為空。參數名稱:clientId'
這是因為您沒有指定appIdin new ConnectorClient。您可以忽略這一點,因為您最好做一些類似的事情:
await stepContext.Context.Adapter.ContinueConversationAsync("<yourAppId>", messageDetails.RelatesTo, async (ITurnContext turnContext, CancellationToken cancel) =>
{
? ? await turnContext.SendActivityAsync(triggerReply);
}, cancellationToken);
關鍵是確保您擁有ConversationReference
需要向其發送主動消息的用戶。如果您沒有,您應該能夠CreateConversation
建立一個
請注意,您還擁有:
if?(messageDetails.IsTrustedServiceUrl) { ????MicrosoftAppCredentials.TrustServiceUrl(messageactivity.ServiceUrl); }
這基本上是說,“如果我們已經信任 serviceUrl,請再次信任它”。相反,您需要:if (!messageDetails.IsTrustedServiceUrl)
主動機器人如何工作
以下是主動示例如何工作的簡要說明。我建議下載并使用它以更好地理解。
機器人在
api/messages
(所有機器人都執行此操作)和api/notify
(只有此機器人執行此操作)上建立偵聽器。當用戶向機器人發送消息時,它會
api/messages
通過.ActivityHandler
對于任何消息,機器人都會保存對話參考
當有人訪問時
<theBotUrl>/api/notify
,它會循環訪問每個保存的對話引用,調用ContinueConversation,并將消息發送給保存的對話引用中的所有用戶。
- 1 回答
- 0 關注
- 153 瀏覽
添加回答
舉報