首页 > 解决方案 > 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.skypeID 后缀,而新团队都使用@thread.tacv2ID 后缀。

标签: c#botframeworkmicrosoft-teams

解决方案


推荐阅读