我正在调用以下端点;
https://graph.microsoft.com/beta/me/trendingAround
我有一个有效的访问令牌应用于我的请求,因为我可以很好地调用OneDrive端点。
然而,对于"围绕",我总是得到以下失败;
{
"error": {
"code": "ErrorAccessDenied",
"message": "Access is denied. Check credentials and try again.",
"innerError": {
"request-id": "cef71302-25e7-4180-bf25-ce685e609a80",
"date": "2016-05-22T08:28:07"
}
}
}
我的Azure Active Directory应用程序是一个Native Client,在" Microsoft Graph"上有所有40个委派权限。申请获得批准。
这次电话我做错了什么?是否有我错过的许可。从我在文档中读到的内容来看,所有这些调用都需要读取网站集中的项目。
修改:我发现以下(非常相似)调用按预期工作;
https://graph.microsoft.com/beta/me/people
我从我的组织中找到了与我有关的人员。所以,我错过了什么" trendingAround"?我唯一能想到的是Azure AD应用程序权限,但就像我说的那样......我已经给它所有内容 ......
编辑2 :为了进行实验,我从门户中的Azure AD Native Client应用程序中删除了所有权限 - beta/me/people
调用仍然有效!根据权限范围文档,这应该至少需要Read users' relevant people lists(preview)
。
任何人都可以告诉我这些权限应该如何运作,因为我完全糊涂了。
答案 0 :(得分:0)
嗯,事实证明我的方法是"授予所有权限"被误导了。在" Windows Azure Active Directory"申请,我已经批准了#34;阅读目录数据"。
门户网站确实抱怨说我没有这样做的许可,但是当我刷新页面时,无论如何它都被勾选了,所以我只是认为这是一个短暂的。
创建一个全新的Native Client应用程序后,我注意到默认情况下在AD下请求的唯一权限是"登录并阅读用户配置文件"。我改变了我原来的原生客户端设置以匹配和...宾果游戏,一切正常。
至于为什么这种错误配置会导致" trendingAround"失败了,我只能猜测。我假设在某种程度上有一个检查"这个应用程序是否被授予权限X?它有 - 太棒了!让我们打电话询问有关这种理解的信息"然后整个电话就会崩溃,因为用户并没有真正拥有这些权利。