UpdateUserRoles 服务操作 - 客户管理

汇报指定用户的角色。

注意

只有具有超级管理员或Standard凭据的用户才能更新用户角色。 Standard用户无法设置或修改超级管理员角色。 有关详细信息,请参阅 用户角色 技术指南。

对于具有帐户角色的用户,可以添加和删除用户有权访问的帐户。 对于具有客户角色的用户,可以添加和删除用户有权访问的客户。 还可以将用户从拥有帐户角色更改为拥有客户角色,反之亦然。

请求元素

UpdateUserRolesRequest 对象定义服务操作请求的正文标头元素。 元素的顺序必须与 请求 SOAP 中所示的顺序相同。

注意

除非下面另有说明,否则需要所有请求元素。

请求正文元素

元素 说明 数据类型
CustomerId 用户所属的客户标识符。 long
DeleteAccountIds 要从用户可以管理的帐户列表中删除的帐户标识符数组。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
DeleteCustomerIds 要从用户可以管理的客户列表中删除的客户标识符数组。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
DeleteRoleId DeleteAccountIdsDeleteCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。

可能的值包括:
16 - 用户具有 广告客户市场活动经理 角色。
33 - 用户具有 聚合者 角色。
41 - 用户具有超级管理员角色。
100 - 用户具有 “查看者 ”角色。
203 - 用户具有Standard用户角色。

有关详细信息,请参阅 用户角色 技术指南。

重要说明:上面的列表提供了可能返回值的示例。 可能会返回其他值。 响应中可以包含已弃用或内部角色。
int
NewAccountIds 要限制用户的帐户标识符数组。 用户只能管理这些帐户。

如果用户当前仅限于一组帐户,请将此元素设置为你希望用户同时管理的新帐户。 例如,如果用户当前管理帐户 123 和 456,并且你希望用户也管理帐户 789,请将此元素设置为 789。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
NewCustomerIds 要限制用户的客户标识符数组。 用户只能管理这些客户。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
NewRoleId NewAccountIdsNewCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。

可能的值包括:
16 - 用户具有 广告客户市场活动经理 角色。
33 - 用户具有 聚合者 角色。
41 - 用户具有超级管理员角色。
100 - 用户具有 “查看者 ”角色。
203 - 用户具有Standard用户角色。

有关详细信息,请参阅 用户角色 技术指南。

重要说明:上面的列表提供了可能返回值的示例。 可能会返回其他值。 响应中可以包含已弃用或内部角色。
int
UserID 要更新其角色的用户的标识符。 long

请求标头元素

元素 说明 数据类型
AuthenticationToken OAuth 访问令牌,表示有权Microsoft广告帐户的用户的凭据。

有关详细信息,请参阅 使用 OAuth 进行身份验证
string
DeveloperToken 用于访问必应广告 API 的开发人员令牌。

有关详细信息,请参阅 获取开发人员令牌
string
Password 此元素保留供内部使用,将从 API 的未来版本中删除。 必须使用 AuthenticationToken 元素来设置用户凭据。 string
UserName 此元素保留供内部使用,将从 API 的未来版本中删除。 必须使用 AuthenticationToken 元素来设置用户凭据。 string

响应元素

UpdateUserRolesResponse 对象定义服务操作响应的正文标头元素。 元素的返回顺序与 响应 SOAP 中所示的顺序相同。

响应正文元素

元素 说明 数据类型
LastModifiedTime 用户角色上次更新的日期和时间。 该值以协调世界时 (UTC) 表示。

日期和时间值反映服务器的日期和时间,而不是客户端。 有关日期和时间格式的信息,请参阅 基元 XML 数据类型中的 dateTime 条目。
dateTime

响应标头元素

元素 说明 数据类型
跟踪 ID 包含 API 调用详细信息的日志条目的标识符。 string

请求 SOAP

此模板由一个工具生成,用于显示 SOAP 请求的正文标头元素的顺序。 有关可用于此服务操作的支持类型,请参阅上面的 请求正文元素 参考。

<s:Envelope xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header xmlns="https://bingads.microsoft.com/Customer/v13">
    <Action mustUnderstand="1">UpdateUserRoles</Action>
    <AuthenticationToken i:nil="false">ValueHere</AuthenticationToken>
    <DeveloperToken i:nil="false">ValueHere</DeveloperToken>
  </s:Header>
  <s:Body>
    <UpdateUserRolesRequest xmlns="https://bingads.microsoft.com/Customer/v13">
      <CustomerId>ValueHere</CustomerId>
      <UserId>ValueHere</UserId>
      <NewRoleId i:nil="false">ValueHere</NewRoleId>
      <NewAccountIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <a1:long>ValueHere</a1:long>
      </NewAccountIds>
      <NewCustomerIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <a1:long>ValueHere</a1:long>
      </NewCustomerIds>
      <DeleteRoleId i:nil="false">ValueHere</DeleteRoleId>
      <DeleteAccountIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <a1:long>ValueHere</a1:long>
      </DeleteAccountIds>
      <DeleteCustomerIds i:nil="false" xmlns:a1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <a1:long>ValueHere</a1:long>
      </DeleteCustomerIds>
    </UpdateUserRolesRequest>
  </s:Body>
</s:Envelope>

响应 SOAP

此模板由一个工具生成,用于显示 SOAP 响应的 正文标头 元素的顺序。

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header xmlns="https://bingads.microsoft.com/Customer/v13">
    <TrackingId d3p1:nil="false" xmlns:d3p1="http://www.w3.org/2001/XMLSchema-instance">ValueHere</TrackingId>
  </s:Header>
  <s:Body>
    <UpdateUserRolesResponse xmlns="https://bingads.microsoft.com/Customer/v13">
      <LastModifiedTime>ValueHere</LastModifiedTime>
    </UpdateUserRolesResponse>
  </s:Body>
</s:Envelope>

代码语法

示例语法可用于 必应广告 SDK。 有关更多示例,请参阅 必应广告 API 代码示例

public async Task<UpdateUserRolesResponse> UpdateUserRolesAsync(
	long customerId,
	long userId,
	int? newRoleId,
	IList<long> newAccountIds,
	IList<long> newCustomerIds,
	int? deleteRoleId,
	IList<long> deleteAccountIds,
	IList<long> deleteCustomerIds)
{
	var request = new UpdateUserRolesRequest
	{
		CustomerId = customerId,
		UserId = userId,
		NewRoleId = newRoleId,
		NewAccountIds = newAccountIds,
		NewCustomerIds = newCustomerIds,
		DeleteRoleId = deleteRoleId,
		DeleteAccountIds = deleteAccountIds,
		DeleteCustomerIds = deleteCustomerIds
	};

	return (await CustomerManagementService.CallAsync((s, r) => s.UpdateUserRolesAsync(r), request));
}
static UpdateUserRolesResponse updateUserRoles(
	java.lang.Long customerId,
	java.lang.Long userId,
	int newRoleId,
	ArrayOflong newAccountIds,
	ArrayOflong newCustomerIds,
	int deleteRoleId,
	ArrayOflong deleteAccountIds,
	ArrayOflong deleteCustomerIds) throws RemoteException, Exception
{
	UpdateUserRolesRequest request = new UpdateUserRolesRequest();

	request.setCustomerId(customerId);
	request.setUserId(userId);
	request.setNewRoleId(newRoleId);
	request.setNewAccountIds(newAccountIds);
	request.setNewCustomerIds(newCustomerIds);
	request.setDeleteRoleId(deleteRoleId);
	request.setDeleteAccountIds(deleteAccountIds);
	request.setDeleteCustomerIds(deleteCustomerIds);

	return CustomerManagementService.getService().updateUserRoles(request);
}
static function UpdateUserRoles(
	$customerId,
	$userId,
	$newRoleId,
	$newAccountIds,
	$newCustomerIds,
	$deleteRoleId,
	$deleteAccountIds,
	$deleteCustomerIds)
{

	$GLOBALS['Proxy'] = $GLOBALS['CustomerManagementProxy'];

	$request = new UpdateUserRolesRequest();

	$request->CustomerId = $customerId;
	$request->UserId = $userId;
	$request->NewRoleId = $newRoleId;
	$request->NewAccountIds = $newAccountIds;
	$request->NewCustomerIds = $newCustomerIds;
	$request->DeleteRoleId = $deleteRoleId;
	$request->DeleteAccountIds = $deleteAccountIds;
	$request->DeleteCustomerIds = $deleteCustomerIds;

	return $GLOBALS['CustomerManagementProxy']->GetService()->UpdateUserRoles($request);
}
response=customermanagement_service.UpdateUserRoles(
	CustomerId=CustomerId,
	UserId=UserId,
	NewRoleId=NewRoleId,
	NewAccountIds=NewAccountIds,
	NewCustomerIds=NewCustomerIds,
	DeleteRoleId=DeleteRoleId,
	DeleteAccountIds=DeleteAccountIds,
	DeleteCustomerIds=DeleteCustomerIds)

备注

例如,如果广告客户市场活动经理仅限于管理帐户 123、456 和 789,而你不再希望用户管理 456,请相应地设置以下元素:

  • NewRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • NewAccountIds 元素设置为包含 123 和 789 的数组。

  • DeleteRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • DeleteAccountIds 元素设置为包含 456 的数组。

如果广告客户市场活动经理仅限于管理帐户 123 和 789,并且你现在希望用户管理所有帐户,请相应地设置以下元素:

  • NewRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • NewAccountIds 元素设置为 NULL。

  • DeleteRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • DeleteAccountIds 元素设置为包含 123、456 和 789 的数组。

具有帐户级别角色的用户可以限制为特定帐户。 具有客户级别角色的用户可以访问用户客户中的所有帐户,并且其访问权限不能限制为特定帐户。

注意

尝试将客户级别用户角色限制为特定帐户时, UpdateUserRoles 操作不会失败,并且用户将保留该用户客户中所有帐户的访问权限。

要求

服务: CustomerManagementService.svc v13
命名空间: https://bingads.microsoft.com/Customer/v13

请求 URL

https://clientcenter.api.bingads.microsoft.com/CustomerManagement/v13/UserRoles

请求元素

UpdateUserRolesRequest 对象定义服务操作请求的正文标头元素。

注意

除非下面另有说明,否则需要所有请求元素。

请求正文元素

元素 说明 数据类型
CustomerId 用户所属的客户标识符。 long
DeleteAccountIds 要从用户可以管理的帐户列表中删除的帐户标识符数组。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
DeleteCustomerIds 要从用户可以管理的客户列表中删除的客户标识符数组。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
DeleteRoleId DeleteAccountIdsDeleteCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。

可能的值包括:
16 - 用户具有 广告客户市场活动经理 角色。
33 - 用户具有 聚合者 角色。
41 - 用户具有超级管理员角色。
100 - 用户具有 “查看者 ”角色。
203 - 用户具有Standard用户角色。

有关详细信息,请参阅 用户角色 技术指南。

重要说明:上面的列表提供了可能返回值的示例。 可能会返回其他值。 响应中可以包含已弃用或内部角色。
int
NewAccountIds 要限制用户的帐户标识符数组。 用户只能管理这些帐户。

如果用户当前仅限于一组帐户,请将此元素设置为你希望用户同时管理的新帐户。 例如,如果用户当前管理帐户 123 和 456,并且你希望用户也管理帐户 789,请将此元素设置为 789。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
NewCustomerIds 要限制用户的客户标识符数组。 用户只能管理这些客户。

有关用法,请参阅下面的 “备注 ”部分。
long 数组
NewRoleId NewAccountIdsNewCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。

可能的值包括:
16 - 用户具有 广告客户市场活动经理 角色。
33 - 用户具有 聚合者 角色。
41 - 用户具有超级管理员角色。
100 - 用户具有 “查看者 ”角色。
203 - 用户具有Standard用户角色。

有关详细信息,请参阅 用户角色 技术指南。

重要说明:上面的列表提供了可能返回值的示例。 可能会返回其他值。 响应中可以包含已弃用或内部角色。
int
UserID 要更新其角色的用户的标识符。 long

请求标头元素

元素 说明 数据类型
Authorization OAuth 访问令牌,表示有权Microsoft广告帐户的用户的凭据。 请确保令牌的前缀为“持有者”,这是正确身份验证所必需的。

有关详细信息,请参阅 使用 OAuth 进行身份验证
string
DeveloperToken 用于访问必应广告 API 的开发人员令牌。

有关详细信息,请参阅 获取开发人员令牌
string
Password 此元素保留供内部使用,将从 API 的未来版本中删除。 必须使用 AuthenticationToken 元素来设置用户凭据。 string
UserName 此元素保留供内部使用,将从 API 的未来版本中删除。 必须使用 AuthenticationToken 元素来设置用户凭据。 string

响应元素

UpdateUserRolesResponse 对象定义服务操作响应的正文标头元素。 元素的返回顺序与 响应 JSON 中所示的顺序相同。

响应正文元素

元素 说明 数据类型
LastModifiedTime 用户角色上次更新的日期和时间。 该值以协调世界时 (UTC) 表示。

日期和时间值反映服务器的日期和时间,而不是客户端。 有关日期和时间格式的信息,请参阅 基元 XML 数据类型中的 dateTime 条目。
dateTime

响应标头元素

元素 说明 数据类型
跟踪 ID 包含 API 调用详细信息的日志条目的标识符。 string

请求 JSON

此模板由显示 JSON 请求的 正文标头 元素的工具生成。 有关可用于此服务操作的支持类型,请参阅上面的 请求正文元素 参考。

{
  "CustomerId": "LongValueHere",
  "UserId": "LongValueHere",
  "NewRoleId": IntValueHere,
  "NewAccountIds": [
    "LongValueHere"
  ],
  "NewCustomerIds": [
    "LongValueHere"
  ],
  "DeleteRoleId": IntValueHere,
  "DeleteAccountIds": [
    "LongValueHere"
  ],
  "DeleteCustomerIds": [
    "LongValueHere"
  ]
}

响应 JSON

此模板由一个工具生成,用于显示 JSON 响应的 正文标头 元素。

{
  "LastModifiedTime": "ValueHere"
}

代码语法

若要通过 SDK 调用 REST API,需要将 SDK 升级到特定版本并配置系统参数。示例语法可用于 必应广告 SDK。 有关更多示例,请参阅 必应广告 API 代码示例

public async Task<UpdateUserRolesResponse> UpdateUserRolesAsync(
	long customerId,
	long userId,
	int? newRoleId,
	IList<long> newAccountIds,
	IList<long> newCustomerIds,
	int? deleteRoleId,
	IList<long> deleteAccountIds,
	IList<long> deleteCustomerIds)
{
	var request = new UpdateUserRolesRequest
	{
		CustomerId = customerId,
		UserId = userId,
		NewRoleId = newRoleId,
		NewAccountIds = newAccountIds,
		NewCustomerIds = newCustomerIds,
		DeleteRoleId = deleteRoleId,
		DeleteAccountIds = deleteAccountIds,
		DeleteCustomerIds = deleteCustomerIds
	};

	return (await CustomerManagementService.CallAsync((s, r) => s.UpdateUserRolesAsync(r), request));
}
static UpdateUserRolesResponse updateUserRoles(
	java.lang.Long customerId,
	java.lang.Long userId,
	int newRoleId,
	ArrayOflong newAccountIds,
	ArrayOflong newCustomerIds,
	int deleteRoleId,
	ArrayOflong deleteAccountIds,
	ArrayOflong deleteCustomerIds) throws RemoteException, Exception
{
	UpdateUserRolesRequest request = new UpdateUserRolesRequest();

	request.setCustomerId(customerId);
	request.setUserId(userId);
	request.setNewRoleId(newRoleId);
	request.setNewAccountIds(newAccountIds);
	request.setNewCustomerIds(newCustomerIds);
	request.setDeleteRoleId(deleteRoleId);
	request.setDeleteAccountIds(deleteAccountIds);
	request.setDeleteCustomerIds(deleteCustomerIds);

	return CustomerManagementService.getService().updateUserRoles(request);
}
static function UpdateUserRoles(
	$customerId,
	$userId,
	$newRoleId,
	$newAccountIds,
	$newCustomerIds,
	$deleteRoleId,
	$deleteAccountIds,
	$deleteCustomerIds)
{

	$GLOBALS['Proxy'] = $GLOBALS['CustomerManagementProxy'];

	$request = new UpdateUserRolesRequest();

	$request->CustomerId = $customerId;
	$request->UserId = $userId;
	$request->NewRoleId = $newRoleId;
	$request->NewAccountIds = $newAccountIds;
	$request->NewCustomerIds = $newCustomerIds;
	$request->DeleteRoleId = $deleteRoleId;
	$request->DeleteAccountIds = $deleteAccountIds;
	$request->DeleteCustomerIds = $deleteCustomerIds;

	return $GLOBALS['CustomerManagementProxy']->GetService()->UpdateUserRoles($request);
}
response=customermanagement_service.UpdateUserRoles(
	CustomerId=CustomerId,
	UserId=UserId,
	NewRoleId=NewRoleId,
	NewAccountIds=NewAccountIds,
	NewCustomerIds=NewCustomerIds,
	DeleteRoleId=DeleteRoleId,
	DeleteAccountIds=DeleteAccountIds,
	DeleteCustomerIds=DeleteCustomerIds)

备注

例如,如果广告客户市场活动经理仅限于管理帐户 123、456 和 789,而你不再希望用户管理 456,请相应地设置以下元素:

  • NewRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • NewAccountIds 元素设置为包含 123 和 789 的数组。

  • DeleteRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • DeleteAccountIds 元素设置为包含 456 的数组。

如果广告客户市场活动经理仅限于管理帐户 123 和 789,并且你现在希望用户管理所有帐户,请相应地设置以下元素:

  • NewRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • NewAccountIds 元素设置为 NULL。

  • DeleteRoleId 元素设置为 16 (广告客户市场活动经理角色) 。

  • DeleteAccountIds 元素设置为包含 123、456 和 789 的数组。

具有帐户级别角色的用户可以限制为特定帐户。 具有客户级别角色的用户可以访问用户客户中的所有帐户,并且其访问权限不能限制为特定帐户。

注意

尝试将客户级别用户角色限制为特定帐户时, UpdateUserRoles 操作不会失败,并且用户将保留该用户客户中所有帐户的访问权限。