在生产环境中尝试发起对话并向用户发送通知时,出现以下错误:
Microsoft.Bot.Schema.ErrorResponseException: Operation returned an invalid status code 'Forbidden'
更新:进一步调试后,错误响应异常内的消息显示为:
The bot is not part of the conversation roster.
在本地开发过程中,连接到MS Teams中的测试应用程序后,它可以正常工作。直到上周五,它也能正常工作-然后突然停止,没有代码更改。
下面的代码基于Microsoft的this example,目的是在teamMembersAdded
事件期间向用户发送欢迎卡。我在这里做错什么了吗?
// Retrieve and validate channel data
var channelData = turnContext.Activity.GetChannelData<TeamsChannelData>();
if (channelData.Team == null)
{
logger.LogInformation("Not sending welcome card as Team in payload is null");
return;
}
// Setup connector and trust url
MicrosoftAppCredentials.TrustServiceUrl(turnContext.Activity.ServiceUrl);
var connector = new ConnectorClient(new System.Uri(turnContext.Activity.ServiceUrl), _credentials);
// Starts new conversation in channel with welcome card
var conversationParameters = new ConversationParameters()
{
IsGroup = true,
ChannelData = new TeamsChannelData()
{
Channel = new ChannelInfo(channelData.Team.Id),
},
Activity = await CreateWelcomeCardTeamActivity(),
};
await connector.Conversations.CreateConversationAsync(conversationParameters);
更新2::该机器人在添加到较早的团队(去年某个时候和今年年初用于测试的团队)中时可以正常工作,但在添加到任何较新的团队中时则无法正常工作。< / p>
唯一的区别似乎是旧团队使用@thread.skype
ID后缀,而新团队都使用@thread.tacv2
ID后缀。