C# 无法从IUserPeopleCollectionPage类型Dataa MS Graph API中找到部门名称
我正在使用以下代码:-C# 无法从IUserPeopleCollectionPage类型Dataa MS Graph API中找到部门名称,c#,microsoft-graph-api,C#,Microsoft Graph Api,我正在使用以下代码:- using Microsoft.Graph; using Microsoft.Identity.Client; using System; using System.Collections; using System.Text.RegularExpressions; namespace MSGraphAPI { class Program { privat
using Microsoft.Graph;
using Microsoft.Identity.Client;
using System;
using System.Collections;
using System.Text.RegularExpressions;
namespace MSGraphAPI
{
class Program
{
private static string clientId = "XXXX";
private static string tenantID = "XXXXX";
private static string objectId = "XXXXXXXX";
private static string clientSecret = "XXXXX";
static async System.Threading.Tasks.Task Main(string[] args)
{
Console.WriteLine(Regex.IsMatch(strToCheck, pattern, RegexOptions.IgnoreCase));
int Flag = 0;
var tenantId = "XXXX.onmicrosoft.com";
var clientId = "XXXXX";
var scopes = new string[] { "https://graph.microsoft.com/.default" };
var confidentialClient = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithAuthority($"https://login.microsoftonline.com/XXXX.onmicrosoft.com/v2.0")
.WithClientSecret(clientSecret)
.Build();
GraphServiceClient graphServiceClient =
new GraphServiceClient(new DelegateAuthenticationProvider(async (requestMessage) => {
// Retrieve an access token for Microsoft Graph (gets a fresh token if needed).
var authResult = await confidentialClient
.AcquireTokenForClient(scopes)
.ExecuteAsync();
// Add the access token in the Authorization header of the API request.
requestMessage.Headers.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", authResult.AccessToken);
})
);
// Make a Microsoft Graph API query
var users = await graphServiceClient.Users.Request().GetAsync();
do
{
foreach (User user in users)
{
Console.WriteLine(user.DepartmentName);
Console.WriteLine(user.DisplayName);
var Peoples = await graphServiceClient.Users[user.Id].People.Request().GetAsync();
foreach(IUserPeopleCollectionPage People in Peoples)
{
Console.WriteLine(People.CurrentPage.ToString());
}
}
while (users.NextPageRequest != null && (users = await users.NextPageRequest.GetAsync()).Count > 0);
Console.WriteLine("------");
Console.WriteLine(Flag);
}
}
}
我找不到部门名称
我可以在People中打印其他值,这些值是IUserPeopleCollectionPage类型的数据,其中包含几个值,如DisplayName、Department、CurrentPage(包含10个数据)
基本上,我尝试使用foreach循环数据,但无法得到结果
请提供帮助。对于v1.0(无测试版)API和SDK,您需要使用请求附加字段()
替换此项:
var-users=await-graphServiceClient.users.Request()
.GetAsync();
为此:
var-users=await-graphServiceClient.users.Request()
.Select(“displayName,department”).GetAsync();
我使用以下代码得到了结果:
var Peoples = await graphServiceClient.Users[user.Id].People.Request().GetAsync();
foreach (Person People in Peoples)
{
if (People.DisplayName.Equals(user.DisplayName))
{
Console.WriteLine(People.Department);
}
}
谢谢大家的支持