如何使用 MS Graph API 和团队轮班获取特定用户的轮班
How do I get shifts for a specific user using MSGraph API and Shfits for Teams
我正在尝试获取给定日期内用户的班次。我已经在给定的日期开始工作,但我无法让特定的用户部分开始工作。
private async Task<IEnumerable<Shift>> GetShiftsAsync(string start, string end, string userId)
{
var shifts = await _graphClient.Teams[TEAMID].Schedule.Shifts.Request()
.Filter($"contains(userId,{userId})")
.GetAsync();
return shifts;
}
这会导致“无效的过滤器子句”的错误请求
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
Status Code: BadRequest
Microsoft.Graph.ServiceException: Code: BadRequest
Message: Invalid filter clause
我也试过了
Filter($"userId eq {userId}")
结果相同
这个link可能会有所帮助:
https://docs.microsoft.com/en-us/graph/query-parameters#filter-parameter
我通常构建一个 filterString。也许你可以试试下面的方法。
var filterString = $"filter(userId, '{userId}')";
private async Task<IEnumerable<Shift>> GetShiftsAsync(string start, string end, string userId)
{
var shifts = await _graphClient.Teams[TEAMID].Schedule.Shifts.Request()
.Filter(filterString)
.GetAsync();
return shifts;
}
我正在尝试获取给定日期内用户的班次。我已经在给定的日期开始工作,但我无法让特定的用户部分开始工作。
private async Task<IEnumerable<Shift>> GetShiftsAsync(string start, string end, string userId)
{
var shifts = await _graphClient.Teams[TEAMID].Schedule.Shifts.Request()
.Filter($"contains(userId,{userId})")
.GetAsync();
return shifts;
}
这会导致“无效的过滤器子句”的错误请求
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
Status Code: BadRequest
Microsoft.Graph.ServiceException: Code: BadRequest
Message: Invalid filter clause
我也试过了
Filter($"userId eq {userId}")
结果相同
这个link可能会有所帮助: https://docs.microsoft.com/en-us/graph/query-parameters#filter-parameter
我通常构建一个 filterString。也许你可以试试下面的方法。
var filterString = $"filter(userId, '{userId}')";
private async Task<IEnumerable<Shift>> GetShiftsAsync(string start, string end, string userId)
{
var shifts = await _graphClient.Teams[TEAMID].Schedule.Shifts.Request()
.Filter(filterString)
.GetAsync();
return shifts;
}