Botframework 无法通过ConnectorClient bot连接器向团队发送消息
我正试图从位于我的Teams Bot中的主动第三方WebHook回调中向团队频道发送消息,该回调在我的Bot对话结束后一段时间从外部触发 我的config.ServiceURL为“”,这是我在会话中对话时从bot获得的 My config.MicrosoftAppId值是分配给Azure中我的机器人应用程序注册的ApplicationID 我的config.MicrosoftAppPassword是我为注册的bot应用程序创建的客户端密码 我的ChannelInfo值是我在另一个应用程序中枚举目标团队的所有频道时发现的值。我用“f”替换了实际值 在Azure中,我向注册的应用程序添加了以下权限:Delegate-Group.ReadWrite.All 当我试图创建对话时,我得到了禁止的回应。如果我将下面的ChannelInfo更改为伪值,我将收到预期的Not Found响应,因此至少ChannelInfo看起来是一个有效值 我还需要添加其他权限吗?我错过了第一步吗?我做错什么了吗? 代码如下:Botframework 无法通过ConnectorClient bot连接器向团队发送消息,botframework,microsoft-teams,Botframework,Microsoft Teams,我正试图从位于我的Teams Bot中的主动第三方WebHook回调中向团队频道发送消息,该回调在我的Bot对话结束后一段时间从外部触发 我的config.ServiceURL为“”,这是我在会话中对话时从bot获得的 My config.MicrosoftAppId值是分配给Azure中我的机器人应用程序注册的ApplicationID 我的config.MicrosoftAppPassword是我为注册的bot应用程序创建的客户端密码 我的ChannelInfo值是我在另一个应用程序中枚举目
AuthenticationConfig config = AuthenticationConfig.ReadFromJsonFile("appsettings.json");
var credentials = new MicrosoftAppCredentials(config.MicrosoftAppId, config.MicrosoftAppPassword);
if (!MicrosoftAppCredentials.IsTrustedServiceUrl(config.ServiceURL))
{
MicrosoftAppCredentials.TrustServiceUrl(config.ServiceURL);
}
var serviceUri = new Uri(config.ServiceURL);
var botConnector = new ConnectorClient(serviceUri, credentials);
Activity message = (Activity)Activity.CreateMessageActivity();
message.Text = "Hello World";
var conversationParameters = new ConversationParameters
{
Bot = message.From,
IsGroup = true,
ChannelData = new TeamsChannelData
{
Channel = new ChannelInfo("19:ffffffffffffffffffffffffffffffff@thread.skype")
},
Activity = (Activity)message
};
var conversationResponse = await botConnector.Conversations.CreateConversationAsync(conversationParameters);
await botConnector
.Conversations
.SendToConversationAsync(message);
你的代码对我很有效。以下是一些您可以尝试的东西:
.SendToConversationAsync(消息),确保您正在将消息发送到正确的对话
到.SendToConversationAsync(conversationResponse.Id,message)代码>
还请注意,由于BotTeams功能已直接应用到botframeworksdk中,该软件包已被弃用。我强烈建议您远离它 您可能希望发送主动消息,如中所示。另一个是50-60号
如果您想继续使用该软件包,请告诉我,我可以继续尝试提供支持。您的代码对我来说运行良好。以下是一些您可以尝试的东西:
.SendToConversationAsync(消息),确保您正在将消息发送到正确的对话
到.SendToConversationAsync(conversationResponse.Id,message)代码>
还请注意,由于BotTeams功能已直接应用到botframeworksdk中,该软件包已被弃用。我强烈建议您远离它 您可能希望发送主动消息,如中所示。另一个是50-60号
如果您想继续使用该软件包,请告诉我,我可以继续尝试提供支持。我最终能够让代码正常工作,但它只会发布到我的Bot运行的同一频道。也就是说,它发回自己,对我来说毫无价值。我无法将消息推送到其他频道。相反,我完全放弃了这个方法,现在使用应用程序webhook将我的消息推送到目标频道。@Mike。我懂了。不幸的是,您的bot必须安装到该频道才能获得发送到该频道的相应权限。它就像用户一样工作——普通用户不能发布到他们不属于的频道。我能够让代码最终工作,但它只会发布到我的机器人运行的同一频道。也就是说,它发回自己,对我来说毫无价值。我无法将消息推送到其他频道。相反,我完全放弃了这个方法,现在使用应用程序webhook将我的消息推送到目标频道。@Mike。我懂了。不幸的是,您的bot必须安装到该频道才能获得发送到该频道的相应权限。它的工作原理和用户一样——普通用户不能发布到他们不属于的频道。