使用Microsoft Graph API,我想创建一个所有Office 365用户的生日列表,但我目前无法获得具有相关属性的用户列表 .
要设置此列表,我需要通过Graph API公开以下属性:
-
id
-
displayName
-
userPrincipalName
-
生日
使用Graph Explorer,https://graph.microsoft.io/en-us/graph-explorer,我试图请求我自己的属性(graph.microsoft.com/v1.0/Me/?$select=id,displayName,userPrincipalName,birthday),它有效:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,userPrincipalName,birthday)/$entity",
"id": "aaaaaaaa-bbbbb-ccccc-a3c6-63817c4bbbca",
"displayName": "Harold van de Kamp",
"userPrincipalName": "harold@company.com",
"birthday": "2000-08-15T00:00:00Z"
}
当我查询所有用户(graph.microsoft.com/v1.0/Users)时,这也有效,但不包含所有必需的属性
但是当我查询具有所需属性的所有用户(graph.microsoft.com/v1.0/Users/?$select=id,displayName,userPrincipalName,birthday)时,我收到以下错误:
{
"error": {
"code": "InternalServerError",
"message": "This operation is not yet supported.",
"innerError": {
"request-id": "06a7b9c9-2fcd-4f26-a86c-fe9704a35a1e",
"date": "2016-06-11T11:15:45"
}
}
}
查询beta API(graph.microsoft.com/beta/Users/?$select=id,displayName,userPrincipalName,birthday)会导致相同的错误 .
Question :我知道为什么会出现这个错误,我们怎么能让它工作?
Bonus question :是否可以直接查询即将到来的15个生日列表?
3 回答
对不起Harold,但不幸的是,正如错误消息所示,目前不支持此功能 . 在幕后,Microsoft Graph正在将数据请求分配给多个服务 . 虽然Microsoft Graph确实支持服务中的分页,但它并不害怕 .
解决方法可能是单独访问该属性:
https://graph.microsoft.com/v1.0/users/<id_or_principle_name>/birthday
不确定您是否找到了解决方法,但我们做了什么(具有相同的要求)是我们能够从我们的内部部署AD映射自定义的Birthday属性 - >使用DirSync将其同步到Azure AD,然后它成为扩展属性让我们拿起并使用 .