使用 Microsoft Graph API 显示即将到来的 Office 365 用户生日列表
Display a list of upcoming birthdays of Office 365 users using Microsoft Graph API
使用 Microsoft Graph API,我想创建一个包含所有 Office 365 用户生日的列表,但我目前无法获得具有相关属性的用户列表。
要设置此列表,我需要通过图表公开以下属性 API:
- id
- 显示名称
- 用户主体名称
- 生日
使用 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) 导致同样的错误。
问题:知道为什么我会收到此错误吗?我们如何才能让它正常工作?
奖金问题:是否可以直接查询即将到来的 15 岁生日的列表?
对不起哈罗德,但不幸的是,正如错误消息所说,目前不支持此功能。在幕后,Microsoft Graph 正在将数据请求分包给多个服务。虽然 Microsoft Graph 支持 within 服务分页,但它尚不支持跨服务分页(或展开)。这是我们将要处理的事情,但恐怕还没有预计到达时间。
不确定您是否找到了解决方法,但我们所做的(具有相同的要求)是我们能够从我们的本地 AD 映射自定义生日属性 -> 使用 DirSync 将其同步到 Azure AD 并且它然后成为扩展属性供我们拿起和使用。
解决方法是单独访问 属性:
https://graph.microsoft.com/v1.0/users/<id_or_principle_name>/birthday
仍在等待,但是,Microsoft Graph 目前不支持它。目前在微软积压中
如果您需要相同的功能,请在 Uservoice/ideas 页面上投票:
- https://microsoftgraph.uservoice.com/forums/920506-microsoft-graph-feature-requests/suggestions/20299153-ability-to-filter-on-collection-type-properties-e
- https://microsoftgraph.uservoice.com/forums/920506-microsoft-graph-feature-requests/suggestions/36230383-expose-birthday-and-department-property-to-the-use
使用 Microsoft Graph API,我想创建一个包含所有 Office 365 用户生日的列表,但我目前无法获得具有相关属性的用户列表。
要设置此列表,我需要通过图表公开以下属性 API:
- id
- 显示名称
- 用户主体名称
- 生日
使用 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) 导致同样的错误。
问题:知道为什么我会收到此错误吗?我们如何才能让它正常工作?
奖金问题:是否可以直接查询即将到来的 15 岁生日的列表?
对不起哈罗德,但不幸的是,正如错误消息所说,目前不支持此功能。在幕后,Microsoft Graph 正在将数据请求分包给多个服务。虽然 Microsoft Graph 支持 within 服务分页,但它尚不支持跨服务分页(或展开)。这是我们将要处理的事情,但恐怕还没有预计到达时间。
不确定您是否找到了解决方法,但我们所做的(具有相同的要求)是我们能够从我们的本地 AD 映射自定义生日属性 -> 使用 DirSync 将其同步到 Azure AD 并且它然后成为扩展属性供我们拿起和使用。
解决方法是单独访问 属性:
https://graph.microsoft.com/v1.0/users/<id_or_principle_name>/birthday
仍在等待,但是,Microsoft Graph 目前不支持它。目前在微软积压中
如果您需要相同的功能,请在 Uservoice/ideas 页面上投票:
- https://microsoftgraph.uservoice.com/forums/920506-microsoft-graph-feature-requests/suggestions/20299153-ability-to-filter-on-collection-type-properties-e
- https://microsoftgraph.uservoice.com/forums/920506-microsoft-graph-feature-requests/suggestions/36230383-expose-birthday-and-department-property-to-the-use