c# - Microsoft Teams:无法开始对话 - 收到状态代码“禁止”
问题描述
尝试在生产中发起对话并向用户发送通知时,我收到以下错误:
Microsoft.Bot.Schema.ErrorResponseException: Operation returned an invalid status code 'Forbidden'
更新:经过进一步调试,错误响应异常内的消息为:
The bot is not part of the conversation roster.
在连接到 MS Teams 中的测试应用程序的本地开发过程中,它工作正常。直到上周五它也运行良好 - 然后突然停止,没有代码更改。
下面的代码基于Microsoft 的这个示例,其目的是在活动期间向用户发送欢迎卡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:该机器人在添加到较老的团队(去年和今年早些时候用于测试)时正常工作,但在添加到任何新团队时不能正常工作。
唯一的区别似乎是旧团队使用@thread.skype
ID 后缀,而新团队都使用@thread.tacv2
ID 后缀。