为什么 Ms Graph API 没有列出已安装的应用程序?

Why an installed app is not listed by Ms Graph API?

我正在尝试升级属于聊天的应用程序。如果应用程序没有安装,下面的代码成功安装它:

await graph.Chats["19:7f...3@thread.v2"].InstalledApps
                .Request()
                .AddAsync(teamsAppInstallation);

但是添加应用后,下面的代码显示零条目:

var installedApps = await graph.Chats["19:7f...3@thread.v2"].InstalledApps.Request().GetAsync();

我期待在那里看到我的应用程序。我的目标是为应用程序调用 Upgrade(),因为它应该允许我在其中一个事件函数(例如 OnTurnAsync)中添加 ConversationReferences,这将允许我将 proactive message 发送到聊天。难道我做错了什么? 已设置应用程序的权限:

TeamsAppInstallation.ReadWriteSelfForChat.All
TeamsAppInstallation.ReadWriteForUser.All

使用 Graph API 的身份验证已成功完成,因为我可以创建聊天、列出频道等。

https://login.microsoftonline.com/botframework.com/oauth2/v2.0/token data: grant_type=client_credentials&client_id={ MS_APP_ID_ENC }&client_secret={ MS_APP_PASS_ENC }&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default

我手动和使用 C# 请求将应用程序添加到聊天:

var teamsAppInstallation = new TeamsAppInstallation {
AdditionalData = new Dictionary<string, object>()
{
    {
        "teamsApp@odata.bind", "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/0c...68/"}
    }
};
var installedApp = await graph.Chats["19:7f...3@thread.v2"].InstalledApps.  Request().AddAsync(teamsAppInstallation);

并添加了该应用程序。可以在聊天中使用。

原来是我用错了应用权限。尽管文档中列出了 TeamsAppInstallation.ReadWriteSelfForChat.Al,但我需要添加 TeamsAppInstallation.ReadWriteForChat.All 才能使其正常工作。