Botframework 是否可以确定团队消息传递扩展的范围?

Botframework 是否可以确定团队消息传递扩展的范围?,botframework,microsoft-teams,Botframework,Microsoft Teams,我为团队开发了一个消息传递扩展。我希望它只对我专门安装应用程序的团队可用。这有可能吗?怎么可能?我找不到这方面的任何信息,但我的用例似乎并不牵强,所以我希望它是可能的 用例:团队成员使用外部系统来注册用例。我希望他们能够在外部系统中搜索和参考团队中相应项目站点的案例。我向引用项目站点的常规频道添加了一个选项卡,消息传递扩展使用该选项卡的contentUrl来查询正确的案例列表。我不希望分机在团队频道之外可用。默认情况下,每个聊天输入选项中都有扩展名 消息扩展没有定义作用域,在团队中安装后就可以使

我为团队开发了一个消息传递扩展。我希望它只对我专门安装应用程序的团队可用。这有可能吗?怎么可能?我找不到这方面的任何信息,但我的用例似乎并不牵强,所以我希望它是可能的


用例:团队成员使用外部系统来注册用例。我希望他们能够在外部系统中搜索和参考团队中相应项目站点的案例。我向引用项目站点的常规频道添加了一个选项卡,消息传递扩展使用该选项卡的contentUrl来查询正确的案例列表。我不希望分机在团队频道之外可用。默认情况下,每个聊天输入选项中都有扩展名

消息扩展没有定义作用域,在团队中安装后就可以使用。目前,无法限制在一个团队中显示消息扩展名

我最终使用一张处理错误的卡进行响应:

private MessagingExtensionResponse errorResponse(string title, string errorText)
{
    MessagingExtensionResult composeExtensionResult = new MessagingExtensionResult
    {
        Type = "result",
        AttachmentLayout = "list",
        Attachments = new List<MessagingExtensionAttachment>(),
    };

    ThumbnailCard h = new ThumbnailCard()
    {
        Title = title,
        Text = errorText,
    };
    composeExtensionResult.Attachments.Add(h.ToAttachment().ToMessagingExtensionAttachment());
    var messagingExtensionResponse = new MessagingExtensionResponse();
    messagingExtensionResponse.ComposeExtension = composeExtensionResult;
    return messagingExtensionResponse;
}
private MessagingExtensionResponse errorResponse(字符串标题,字符串错误文本)
{
MessagingExtensionResult composeExtensionResult=新MessagingExtensionResult
{
Type=“result”,
AttachmentLayout=“列表”,
附件=新列表(),
};
ThumbnailCard h=新的ThumbnailCard()
{
头衔,
Text=errorText,
};
composeExtensionResult.Attachments.Add(h.ToAttachment().ToMessageExtensionAttachment());
var messagingExtensionResponse=新messagingExtensionResponse();
messagingExtensionResponse.ComposeExtension=composeExtensionResult;
返回messagingExtensionResponse;
}
虽然能够确定扩展的范围会很好,但这样我可以捕获一些更无效的用法。例如:

var currentTeam = new TeamDetails();
IList<ChannelInfo> currentTeamChannels = new List<ChannelInfo>();
try
{
    currentTeam = await TeamsInfo.GetTeamDetailsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
    currentTeamChannels = await TeamsInfo.GetTeamChannelsAsync(turnContext, turnContext.Activity.TeamsGetTeamInfo().Id, cancellationToken);
}
catch
{
    return errorResponse("Permission error", "This app has no permissions to this team / channel. Please add the app to this team / channel.");
}
var currentTeam=new TeamDetails();
IList CurrentTeamChannel=新列表();
尝试
{
currentTeam=await TeamsInfo.GetTeamDetailsAsync(turnContext,turnContext.Activity.TeamsGettaminfo().Id,cancellationToken);
currentTeamChannels=await TeamsInfo.GetTeamChannelsAsync(turnContext,turnContext.Activity.TeamsGettaminfo().Id,cancellationToken);
}
抓住
{
return errorResponse(“权限错误”,“此应用对此团队/频道没有权限。请将此应用添加到此团队/频道”);
}
从这个问题中得到建议: