本文内容
命名空间:microsoft.graph
重要
Microsoft Graph /beta
版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
更新联系人对象的属性。
此 API 可用于以下国家级云部署 。
全局服务
美国政府 L4
美国政府 L5 (DOD)
由世纪互联运营的中国
✅
✅
✅
✅
权限
要调用此 API,需要以下权限之一。 若要了解详细信息,包括如何选择权限的信息,请参阅权限 。
权限类型
权限(从最低特权到最高特权)
委派(工作或学校帐户)
Contacts.ReadWrite
委派(个人 Microsoft 帐户)
Contacts.ReadWrite
应用程序
Contacts.ReadWrite
HTTP 请求
来自 用户默认 contactFolder 的联系人 。
PATCH /me/contacts/{id}
PATCH /users/{id | userPrincipalName}/contacts/{id}
来自用户的顶级 contactFolder 中的 联系人 。
PATCH /me/contactFolders/{id}/contacts/{id}
PATCH /users/{id | userPrincipalName}/contactFolders/{id}/contacts/{id}
contactFolder 的子文件夹中包含的 联系人 。 下面的示例显示了一个嵌套级别,但联系人可能位于子级的子级中,诸如此类。
PATCH /me/contactFolders/{id}/childFolders/{id}/.../contacts/{id}
PATCH /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts/{id}
标头
值
Authorization
持有者 {token}。 必填。 详细了解 身份验证和授权 。
Content-Type
application/json. 必需。
请求正文
在请求正文中,提供应更新的相关字段的值。 请求正文中不包括的现有属性将保留其以前的值,或根据对其他属性值的更改重新计算。 为了实现最佳性能,不得添加未变化的现有值。
属性
类型
说明
assistantName
String
联系人助理的姓名。
birthday
DateTimeOffset
联系人的生日。
categories
String
与联系人关联的类别。
children
String
CompanyName
String
联系人所在公司的名称。
department
String
联系人所在的部门。
displayName
String
联系人的显示名称。 请注意,对其他属性的后续更新可能会导致自动生成的值覆盖你指定的 displayName 值。 若要保留预先存在的值,请始终在更新操作中将其作为 displayName。
emailAddresses
typedEmailAddress 集合
联系人的电子邮件地址。
fileAs
String
联系人备案的姓名。
gender
String
联系人的性别。
generation
String
联系人所属的代。
givenName
String
联系人的名。
imAddresses
String
联系人的即时消息 (IM) 地址。
initials
String
联系人的姓名缩写。
jobTitle
String
联系人的职务。
manager
String
联系人经理的姓名。
middleName
String
联系人的中间名。
nickName
String
联系人的昵称。
officeLocation
String
联系人的办公室位置。
parentFolderId
String
联系人的父文件夹 ID。
personalNotes
String
有关联系人的用户备注。
phones
phone collection
与联系人关联的电话号码,例如家庭电话、移动电话和商务电话。
postalAddresses
physicalAddress 集合
与联系人关联的地址,例如家庭地址和公司地址。
profession
String
联系人的职业。
spouseName
String
联系人配偶/伴侣的姓名。
surname
String
联系人的姓氏。
title
String
联系人的职位。
websites
website collection
与联系人关联的网站。
weddingAnniversary
日期
联系人的结婚纪念日。
yomiCompanyName
String
联系人的注音日文公司名称。 此属性是可选的。
yomiGivenName
String
联系人的注音日文名字。 此属性是可选的。
yomiSurname
String
日语拼音姓氏 (联系人) 。 此属性可选。
由于 联系人 资源支持 扩展 ,因此可以使用 PATCH
操作在现有 联系人 实例中扩展的自定义属性中添加、更新或删除自己的特定于应用的数据。
响应
如果成功,此方法在响应正文中返回响应 200 OK
代码和更新的 contact 对象。
示例
请求
以下示例更新指定联系人的个人电子邮件地址。
PATCH https://graph.microsoft.com/beta/me/contacts/AAMkADh6v5AAAvgTCEAAA=
Content-type: application/json
{
"emailAddresses":[
{
"type":"personal",
"name":"Pavel Bansky",
"address":"pavelb@contoso.com"
},
{
"address": "pavelb@contoso.com",
"name": "Pavel Bansky",
"type": "other",
"otherLabel": "Volunteer work"
}
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new Contact
{
EmailAddresses = new List<TypedEmailAddress>
{
new TypedEmailAddress
{
Type = EmailType.Personal,
Name = "Pavel Bansky",
Address = "pavelb@contoso.com",
},
new TypedEmailAddress
{
Address = "pavelb@contoso.com",
Name = "Pavel Bansky",
Type = EmailType.Other,
OtherLabel = "Volunteer work",
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Contacts["{contact-id}"].PatchAsync(requestBody);
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc-beta users contacts patch --user-id {user-id} --contact-id {contact-id} --body '{\
"emailAddresses":[\
{\
"type":"personal",\
"name":"Pavel Bansky",\
"address":"pavelb@contoso.com"\
},\
{\
"address": "pavelb@contoso.com",\
"name": "Pavel Bansky",\
"type": "other",\
"otherLabel": "Volunteer work"\
}\
]\
}\
'
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
graphClient := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestBody := graphmodels.NewContact()
typedEmailAddress := graphmodels.NewTypedEmailAddress()
type := graphmodels.PERSONAL_EMAILTYPE
typedEmailAddress.SetType(&type)
name := "Pavel Bansky"
typedEmailAddress.SetName(&name)
address := "pavelb@contoso.com"
typedEmailAddress.SetAddress(&address)
typedEmailAddress1 := graphmodels.NewTypedEmailAddress()
address := "pavelb@contoso.com"
typedEmailAddress1.SetAddress(&address)
name := "Pavel Bansky"
typedEmailAddress1.SetName(&name)
type := graphmodels.OTHER_EMAILTYPE
typedEmailAddress1.SetType(&type)
otherLabel := "Volunteer work"
typedEmailAddress1.SetOtherLabel(&otherLabel)
emailAddresses := []graphmodels.TypedEmailAddressable {
typedEmailAddress,
typedEmailAddress1,
}
requestBody.SetEmailAddresses(emailAddresses)
contacts, err := graphClient.Me().Contacts().ByContactId("contact-id").Patch(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Contact contact = new Contact();
LinkedList<TypedEmailAddress> emailAddresses = new LinkedList<TypedEmailAddress>();
TypedEmailAddress typedEmailAddress = new TypedEmailAddress();
typedEmailAddress.setType(EmailType.Personal);
typedEmailAddress.setName("Pavel Bansky");
typedEmailAddress.setAddress("pavelb@contoso.com");
emailAddresses.add(typedEmailAddress);
TypedEmailAddress typedEmailAddress1 = new TypedEmailAddress();
typedEmailAddress1.setAddress("pavelb@contoso.com");
typedEmailAddress1.setName("Pavel Bansky");
typedEmailAddress1.setType(EmailType.Other);
typedEmailAddress1.setOtherLabel("Volunteer work");
emailAddresses.add(typedEmailAddress1);
contact.setEmailAddresses(emailAddresses);
Contact result = graphClient.me().contacts().byContactId("{contact-id}").patch(contact);
const options = {
authProvider,
};
const client = Client.init(options);
const contact = {
emailAddresses: [
{
type: 'personal',
name: 'Pavel Bansky',
address: 'pavelb@contoso.com'
},
{
address: 'pavelb@contoso.com',
name: 'Pavel Bansky',
type: 'other',
otherLabel: 'Volunteer work'
}
]
};
await client.api('/me/contacts/AAMkADh6v5AAAvgTCEAAA=')
.version('beta')
.update(contact);
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Contact;
use Microsoft\Graph\Generated\Models\TypedEmailAddress;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Contact();
$emailAddressesTypedEmailAddress1 = new TypedEmailAddress();
$emailAddressesTypedEmailAddress1->setType(new EmailType('personal'));
$emailAddressesTypedEmailAddress1->setName('Pavel Bansky');
$emailAddressesTypedEmailAddress1->setAddress('pavelb@contoso.com');
$emailAddressesArray []= $emailAddressesTypedEmailAddress1;
$emailAddressesTypedEmailAddress2 = new TypedEmailAddress();
$emailAddressesTypedEmailAddress2->setAddress('pavelb@contoso.com');
$emailAddressesTypedEmailAddress2->setName('Pavel Bansky');
$emailAddressesTypedEmailAddress2->setType(new EmailType('other'));
$emailAddressesTypedEmailAddress2->setOtherLabel('Volunteer work');
$emailAddressesArray []= $emailAddressesTypedEmailAddress2;
$requestBody->setEmailAddresses($emailAddressesArray);
$result = $graphServiceClient->me()->contacts()->byContactId('contact-id')->patch($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.PersonalContacts
$params = @{
emailAddresses = @(
@{
type = "personal"
name = "Pavel Bansky"
address = "pavelb@contoso.com"
}
@{
address = "pavelb@contoso.com"
name = "Pavel Bansky"
type = "other"
otherLabel = "Volunteer work"
}
)
}
# A UPN can also be used as -UserId.
Update-MgBetaUserContact -UserId $userId -ContactId $contactId -BodyParameter $params
from msgraph import GraphServiceClient
from msgraph.generated.models.contact import Contact
from msgraph.generated.models.typed_email_address import TypedEmailAddress
graph_client = GraphServiceClient(credentials, scopes)
request_body = Contact(
email_addresses = [
TypedEmailAddress(
type = EmailType.Personal,
name = "Pavel Bansky",
address = "pavelb@contoso.com",
),
TypedEmailAddress(
address = "pavelb@contoso.com",
name = "Pavel Bansky",
type = EmailType.Other,
other_label = "Volunteer work",
),
],
)
result = await graph_client.me.contacts.by_contact_id('contact-id').patch(request_body)
响应
以下示例显示了相应的响应。 注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#users('c3e1fcd2-db78-42a8-aec5-1f2cd59abb5c')/contacts/$entity",
"@odata.etag":"W/\"EQAAABYAAACv7At+UNVFRLhGciJGF6v5AAAve7fh\"",
"id":"AAMkADh6v5AAAvgTCEAAA=",
"createdDateTime":"2018-06-11T19:56:07Z",
"lastModifiedDateTime":"2018-06-11T20:26:23Z",
"changeKey":"EQAAABYAAACv7At+UNVFRLhGciJGF6v5AAAve7fh",
"categories":[
],
"parentFolderId":"AAMkADh6v5AAAAAAEOAAA=",
"birthday":null,
"fileAs":"",
"displayName":"Pavel Bansky",
"givenName":"Pavel",
"initials":null,
"middleName":null,
"nickName":null,
"surname":"Bansky",
"title":null,
"yomiGivenName":null,
"yomiSurname":null,
"yomiCompanyName":null,
"generation":null,
"imAddresses":[
],
"jobTitle":null,
"companyName":null,
"department":null,
"officeLocation":null,
"profession":null,
"assistantName":null,
"manager":null,
"spouseName":null,
"personalNotes":"",
"children":[
],
"gender":null,
"isFavorite":null,
"emailAddresses":[
{
"type":"personal",
"name":"Pavel Bansky",
"address":"pavelb@contoso.com"
},
{
"type":"other",
"otherLabel":"Volunteer work",
"name":"Pavel Bansky",
"address":"pavelb@contoso.com"
}
],
"websites":[
],
"phones":[
{
"type":"business",
"number":"+1 732 555 0102"
}
],
"postalAddresses":[
],
"flag":{
"flagStatus":"notFlagged"
}
}
相关内容