我正试图从驻留在我的Teams中的一个主动的第三方WebHook回调中向团队频道发送一条消息,这是在我的机器人对话结束后的一段时间外部触发的。
我的config.ServiceURL是'https://smba.trafficmanager.net/amer/‘,这是我在会话时从机器人那里得到的。
我的config.MicrosoftAppId值是分配给我在Azure中的bot应用程序注册的ApplicationID。
我的config.MicrosoftAppPassword是我为注册的bot应用程序创建的客户端机密。
我的ChannelInfo值是我在另一个应用程序中枚举目标团队的所有通道时发现的值。我用'f's替换了实际值。
在Azure中,我向我的注册应用程序添加了以下权限:委托- Group.ReadWrite.All
当我试图建立对话时,我得到了一个禁止的回应。如果我将下面的ChannelInfo更改为假值,就会收到一个未找到的响应,因此至少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);发布于 2019-12-13 17:55:59
你的代码对我很有用。以下是一些你可以尝试的东西:
.SendToConversationAsync(message);更改为.SendToConversationAsync(conversationResponse.Id, message);,确保将消息发送到正确的对话还请注意,由于Bot <->Team功能已经直接滚到Bot中,所以Microsoft.Bot.Builder.Teams包已经被废弃了。我强烈建议远离它。
您可能希望发送积极的消息,如这个样本所示。另一个团队样本是50-60号.
如果你想坚持这个方案,请告诉我,我可以继续努力提供支持。
https://stackoverflow.com/questions/59310279
复制相似问题