我正在尝试构建一个使用 Microsoft Graph API 通过电子邮件地址查找其他用户的应用程序。不幸的是,我还需要通过备用/代理电子邮件地址进行查找,而且我正在努力寻找 API 调用所需的范围。
使用 Graph Explorer ,我可以成功提交查询 /beta/users?$filter=proxyAddresses/any(x:x eq 'smtp:user.name@example.com')
但是在应用程序中运行时我得到权限不足错误。
{
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation."
}
该应用程序是使用节点和 @microsoft/microsoft-graph-client
NPM 包编写的,并遵循 tutorial here .
查询在节点中看起来像这样:
let result = await client
.api('/users')
.version("beta")
.filter('proxyAddresses/any(x:x eq \'smtp:' + email + '\')')
.get();
当我使用更简单的查询时它会起作用,例如:
let result = await client
.api('/users')
.version("beta")
.filter('mail eq \'' + email + '\'')
.get();
无论我使用什么版本,我都会得到相同的结果。所以我认为它与 proxyAddresses
属性有关,但我不知道为什么它会在资源管理器中而不是在这里工作?
如有任何帮助,我们将不胜感激!
最佳答案
这听起来像是您需要更新范围列表以包含缺失的范围。我不知道你需要什么范围,但我会在 Graph Explorer 中做,在你登录后,我会打开控制台并运行 tokenPlease() 来获取你的访问 token 。将 Graph Explorer 返回的访问 token 中的范围与您在应用中请求的范围进行比较,以帮助您确定仍需要请求的范围。
关于javascript - 使用 proxyAddresses 筛选器的 Microsoft Graph API 查询用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50621167/