ContactFolder中的联系人列表
问题描述:
我想要使用Microsoft Graph API从ContactFolder
获取联系人列表。ContactFolder中的联系人列表
我使用的代码如下:
GraphServiceClient graphClient = new GraphServiceClient (new CustomAuthentication());
// build the request
var request = graphClient.Me.ContactFolders.Request();
// get all contact folders
var folders = await request.GetAsync();
// get the first folder
var folder = folders.FirstOrDefault();
// get all contacts in that folder (Contacts is always null)
var contacts = folder.Contacts.ToList();
在最后一行,则Contacts
集合为null即使通过Outlook查看时是该文件夹中的联系人。
席力图召folder.Contacts.GetAsync(),但是该方法不会出现可用:
任何帮助,将不胜感激。
答
首先您要求FirstOrDefault
但这不是由IUserContactFoldersCollectionPage
公开的方法。您需要通过指数来解决内folders
项目:
folders[0]
folders[1]
folders[etc]
你还没有填充Contacts
对象。请记住,Microsoft Graph是一个REST API。它提供了无状态HTTP方法的集合,因此它不会自动提供对象模型。你需要特别要求的数据Contacts
:
.Contacts.Request().GetAsync();
还要注意的是,如果有多个文件夹ContactFolders
才会返回结果。从不返回默认的联系人文件夹。如果用户没有额外的文件夹,这将返回一个空的结果。记住
有了这个,你会找回Contacts
这样的:
GraphServiceClient graphClient = new GraphServiceClient(new CustomAuthentication());
// get all contact folders
var folders = await graphClient
.Me
.ContactFolders
.Request()
.GetAsync();
if (folders.Count > 0)
{
// Get contacts from that first folder
var folderContacts = await graphClient
.Me
.ContactFolders[folders[0].Id]
.Contacts
.Request()
.GetAsync();
}
else
{
// This user only has the default contacts folder
var defaultContacts = await graphClient
.Me
.Contacts
.Request()
.GetAsync();
}
我试过了,但该文件夹对象的联系人属性不会有GetAsync方法。我能错过什么吗?我更新了我的问题,并试图在Contacts属性上调用GetAsync。 – Trev
更多信息您可以给我吗? – Trev