我正在尝试使用 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;
我不确定我做错了什么。
有什么帮助吗?
最佳答案
你应该给应用程序 申请权限而不是 授权 .
引用 https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-permissions-and-consent#types-of-permissions
还记得单击授予管理员同意按钮。
更新:引用这个document .
关于azure-active-directory - 无法使用 Microsoft Graph API 从 Azure AD 获取订阅列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56287627/