UpdateUserRoles 服务操作 - 客户管理
汇报指定用户的角色。
注意
只有具有超级管理员或Standard凭据的用户才能更新用户角色。 Standard用户无法设置或修改超级管理员角色。 有关详细信息,请参阅 用户角色 技术指南。
对于具有帐户角色的用户,可以添加和删除用户有权访问的帐户。 对于具有客户角色的用户,可以添加和删除用户有权访问的客户。 还可以将用户从拥有帐户角色更改为拥有客户角色,反之亦然。
请求元素
UpdateUserRolesRequest 对象定义服务操作请求的正文和标头元素。 元素的顺序必须与 请求 SOAP 中所示的顺序相同。
注意
除非下面另有说明,否则需要所有请求元素。
请求正文元素
元素 | 说明 | 数据类型 |
---|---|---|
CustomerId | 用户所属的客户标识符。 | long |
DeleteAccountIds | 要从用户可以管理的帐户列表中删除的帐户标识符数组。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
DeleteCustomerIds | 要从用户可以管理的客户列表中删除的客户标识符数组。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
DeleteRoleId |
DeleteAccountIds 或 DeleteCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。 可能的值包括: 16 - 用户具有 广告客户市场活动经理 角色。 33 - 用户具有 聚合者 角色。 41 - 用户具有超级管理员角色。 100 - 用户具有 “查看者 ”角色。 203 - 用户具有Standard用户角色。 有关详细信息,请参阅 用户角色 技术指南。 重要说明:上面的列表提供了可能返回值的示例。 可能会返回其他值。 响应中可以包含已弃用或内部角色。 |
int |
NewAccountIds | 要限制用户的帐户标识符数组。 用户只能管理这些帐户。 如果用户当前仅限于一组帐户,请将此元素设置为你希望用户同时管理的新帐户。 例如,如果用户当前管理帐户 123 和 456,并且你希望用户也管理帐户 789,请将此元素设置为 789。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
NewCustomerIds | 要限制用户的客户标识符数组。 用户只能管理这些客户。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
NewRoleId |
NewAccountIds 或 NewCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。 可能的值包括: 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
请求元素
UpdateUserRolesRequest 对象定义服务操作请求的正文和标头元素。
注意
除非下面另有说明,否则需要所有请求元素。
请求正文元素
元素 | 说明 | 数据类型 |
---|---|---|
CustomerId | 用户所属的客户标识符。 | long |
DeleteAccountIds | 要从用户可以管理的帐户列表中删除的帐户标识符数组。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
DeleteCustomerIds | 要从用户可以管理的客户列表中删除的客户标识符数组。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
DeleteRoleId |
DeleteAccountIds 或 DeleteCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。 可能的值包括: 16 - 用户具有 广告客户市场活动经理 角色。 33 - 用户具有 聚合者 角色。 41 - 用户具有超级管理员角色。 100 - 用户具有 “查看者 ”角色。 203 - 用户具有Standard用户角色。 有关详细信息,请参阅 用户角色 技术指南。 重要说明:上面的列表提供了可能返回值的示例。 可能会返回其他值。 响应中可以包含已弃用或内部角色。 |
int |
NewAccountIds | 要限制用户的帐户标识符数组。 用户只能管理这些帐户。 如果用户当前仅限于一组帐户,请将此元素设置为你希望用户同时管理的新帐户。 例如,如果用户当前管理帐户 123 和 456,并且你希望用户也管理帐户 789,请将此元素设置为 789。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
NewCustomerIds | 要限制用户的客户标识符数组。 用户只能管理这些客户。 有关用法,请参阅下面的 “备注 ”部分。 |
long 数组 |
NewRoleId |
NewAccountIds 或 NewCustomerIds 元素中指定的值应用于的角色标识符(如果已设置)。 可能的值包括: 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 操作不会失败,并且用户将保留该用户客户中所有帐户的访问权限。