使用Microsoft Graph API无法从Azure AD获取订阅列表

4

我正在尝试使用Microsoft Graph API从Azure AD获取通知订阅列表。

我正在Webjob应用程序中尝试它。

Webjob项目中的功能类具有以下代码:

  public static void CreateAndUpdateSubcriptions()
    {
        var config= new ConfigurationSettings
        {
            AppId = "*****",
            AppSecret = "***",
            Ngrok = "****",
            TenantId = "*****"
        };

        var graphServiceClient = GetGraphClient(config);//creates the graph client using client credential flow

        var subscriptions = graphServiceClient.Subscriptions
            .Request()
            .GetAsync().Result;

        List<Subscription> subscription = new List<Subscription>();

        foreach (var subscrip in subscriptions)
        {
            if (subscrip.NotificationUrl == config.Ngrok + "/api/notifications")
            {
                subscription.Add(subscrip);
            }
        }

        if (subscription.Count == 0)
        {
            var s = new Subscription
            {
                ChangeType = "updated",
                NotificationUrl = config.Ngrok + "/api/notifications",
                Resource = "groups",
                ExpirationDateTime = DateTime.UtcNow.AddMinutes(10),
                ClientState = "****"
            };
            s = graphServiceClient
                    .Subscriptions
                    .Request()
                    .AddAsync(sub).Result;

        }
        else
        {
            CheckSubscriptions(subscription, config);
        }
    }

我已经授权给应用程序代理权限(Subscription.Read.All)。

但是当我再次运行代码时,从代码部分没有获取到任何订阅(因此存在一个订阅),

var subscriptions = graphServiceClient.Subscriptions
            .Request()
            .GetAsync().Result;

我不确定自己做错了什么。

有人可以帮忙吗?

1个回答

0

谢谢您,但在应用程序权限下没有名为Subscription.Read.All的权限。 - NewBieDevRo
您成功创建了订阅吗? - Tony Ju
是的,你说得对。如果你能够创建订阅,那么除了最初用于创建其订阅的权限之外,你不需要任何特殊权限。 - Tony Ju

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接