我有一个在bot的帮助下编写的bot framework v4
。该机器人与Microsoft Teams集成在一起。我想在用户安装漫游器并加入1:1对话时向用户发送欢迎消息。在“团队”conversationUpdate
中,只会被触发一次(这是当用户加入1:1对话时),然后再对该用户不再触发。我的想法是编写一个由聊天消息触发的功能,以updateConversation
手动发送活动以调试欢迎消息。
到目前为止我失败了
BadArgument:未知的活动类型异常。
我尝试使用Microsoft.Bot.Builder.Teams nuget,将ConnectorClient
其发送conversationUpdate
到对话中。
另外,我设置了一个控制台应用程序,并尝试使用v3/directline/conversations/{conversationId}/activities
并得到了一个Forbidden
错误。
private async Task SendConversationUpdateToTeamsAsync(ITurnContext turnContext, CancellationToken cToken = default)
{
var connectorClient = turnContext.TurnState.Get<IConnectorClient>();
var conversationUpdateMessage = new Activity
{
Type = ActivityTypes.ConversationUpdate,
Id = turnContext.Activity.Id,
ServiceUrl = turnContext.Activity.ServiceUrl,
From = turnContext.Activity.From,
Recipient = turnContext.Activity.Recipient,
Conversation = turnContext.Activity.Conversation,
ChannelData = turnContext.Activity.ChannelData,
ChannelId = turnContext.Activity.ChannelId,
Timestamp = turnContext.Activity.Timestamp,
MembersAdded = new List<ChannelAccount>
{
turnContext.Activity.From,
turnContext.Activity.Recipient
},
};
var result = await connectorClient.Conversations.SendToConversationAsync(conversationUpdateMessage, cToken);
}
我希望conversationUpdate
手动发送调试团队中的行为的作品。在办公室门户中创建新用户并为他们安装机器人以调试conversationUpdate
行为对我来说是不可行的选择,因为这很费时间。如果还有其他解决方法来触发conversationUpdate
团队合作,请告诉我。
我不确定ConversationUpdate
是否可以以您尝试的方式强制发送。取而代之的是,我只想在这样的东西中抛出OnMessageAsync()
:
if (turnContext.Activity.Text == "fakeConversationUpdate")
{
var fakeTurnContext = new TurnContext(turnContext.Adapter, MessageFactory.Text(string.Empty));
fakeTurnContext.Activity.AsConversationUpdateActivity();
fakeTurnContext.Activity.Type = ActivityTypes.ConversationUpdate;
fakeTurnContext.Activity.MembersAdded = new List<ChannelAccount>()
{
new ChannelAccount()
{
Id = "fakeUserId",
Name = "fakeUserName"
}
};
await OnConversationUpdateActivityAsync(new DelegatingTurnContext<IConversationUpdateActivity>(fakeTurnContext), cancellationToken);
}
然后进行调试,您只需在聊天室中将“ fakeConversationUpdate”(您可以更改/自定义)写入机器人,它将通过以下方式发送您的机器人fakeTurnContext
(您可以更改/自定义)OnConversationUpdateActivityAsync()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句