我正在尝试使用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;
我不确定自己做错了什么。
有人可以帮忙吗?