在使用 Graph SDK v5 (C#) 创建新联系人时,我尝试为多个 singleValueExtendedProperties 添加值。我的代码运行没有错误,但似乎未应用 singleValueExtendedProperties。 例如,如果我运行以下代码,它就会起作用。
var requestContactBody = new Microsoft.Graph.Models.Contact
{
Surname = "",
GivenName = givenName,
FileAs = givenName,
CompanyName = companyName,
JobTitle = jobTitle,
Department = department,
BusinessHomePage = businessHomePage,
BusinessPhones = new List<string>(),
MobilePhone = mobilePhone,
EmailAddresses = new List<Microsoft.Graph.Models.EmailAddress>
{
new Microsoft.Graph.Models.EmailAddress
{
Name = emailAddress_name,
Address = emailAddress_address,
},
},
BusinessAddress = new Microsoft.Graph.Models.PhysicalAddress
{
Street = businessAddress_street,
City = businessAddress_city,
State = businessAddress_state,
PostalCode = businessAddress_postalCode,
},
PersonalNotes = personalNotes,
SingleValueExtendedProperties = new List<Microsoft.Graph.Models.SingleValueLegacyExtendedProperty>
{
new Microsoft.Graph.Models.SingleValueLegacyExtendedProperty
{
Id = "String {00062004-0000-0000-C000-000000000046} Id 0x8084",
Value = aSemail,
},
new Microsoft.Graph.Models.SingleValueLegacyExtendedProperty
{
Id = "String {00062004-0000-0000-c000-000000000046} Id 0x8082",
Value = "SMTP",
},
},
};
gsc.Users[impersonaddr].ContactFolders[aFolderID].Contacts.PostAsync(requestContactBody).GetAwaiter().GetResult();
但是,如果通过图形资源管理器检查刚刚添加的联系人,则 singleValueExtendedProperties 未正确应用,而其他属性则正常。
https://graph.microsoft.com/v1.0/me/contacts?$expand=singleValueExtendedProperties($filter=id eq 'String {00062004-0000-0000-C000-000000000046} Id 0x00008084' or id eq 'String {00062004-0000-0000-C000-000000000046} Id 0x8082')
它们似乎已设置为默认值。
"singleValueExtendedProperties": [
{
"id": "String {00062004-0000-0000-c000-000000000046} Id 0x8084",
"value": "[email protected]"
},
{
"id": "String {00062004-0000-0000-c000-000000000046} Id 0x8082",
"value": "EX"
}
]
请大家帮帮我
我明白了!对于 SingleValueExtendedProperties PostAsync 不起作用。 您应该首先使用 POST 创建联系,然后使用 PATCH 添加 SingleValueExtendedProperties。 例如,
var contactResult = gsc.Users[impersonaddr].ContactFolders[aFolderID].Contacts.PostAsync(requestContactBody).GetAwaiter().GetResult();
var requestBody = new Microsoft.Graph.Models.Contact
{
SingleValueExtendedProperties = new List<Microsoft.Graph.Models.SingleValueLegacyExtendedProperty>
{
new Microsoft.Graph.Models.SingleValueLegacyExtendedProperty
{
Id = "String {00062004-0000-0000-C000-000000000046} Id 0x8084",
Value = aSemail,
},
new Microsoft.Graph.Models.SingleValueLegacyExtendedProperty
{
Id = "String {00062004-0000-0000-c000-000000000046} Id 0x8082",
Value = "SMTP",
},
},
};
gsc.Users[impersonaddr].Contacts[contactResult.Id].PatchAsync(requestBody).GetAwaiter().GetResult();