自
2025 年 9 月 8 日起,每个新订单项都需要声明是否会投放欧盟 (EU) 政治广告。Display & Video 360 API 和未提供声明的 SDF 上传操作将会失败。如需详细了解如何更新集成以进行此声明,请参阅我们的
弃用页面。
检索用户
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
用户资源既包含特定于用户的信息(例如用户显示名称和唯一 ID),也包含权限信息或分配的用户角色。
本页介绍了如何使用电子邮件地址检索用户资源。
从过滤后的列表中检索用户
Display & Video 360 API 用户资源在创建时会由系统分配一个唯一 ID。此 ID 可用于通过 users.get
方法检索用户资源。不过,如果您没有用户的 userId
,仍然可以使用 users.list
方法搭配 filter
参数按电子邮件地址过滤来检索用户资源。
下面的示例展示了如何使用此方法检索用户资源:
Java
// Create a variable to store the desired user once found.
User retrievedUser = new User();
// Create the filter string for list call. Using this filter will return all
// users with an email address containing the specified value.
String emailFilter = String.format("email:\"%s\"", email-address);
// Configure the list request.
Users.List request =
service
.users()
.list();
// Set the filter for the request.
request.setFilter(emailFilter);
// Create the response and nextPageToken variables.
ListUsersResponse response;
String nextPageToken = null;
do {
// Create and execute the list request.
response = request.setPageToken(nextPageToken).execute();
// Check if response is empty.
if (response.isEmpty()) {
break;
}
// Iterate over retrieved line items and add to total list.
for (User user : response.getUsers()) {
if (user.getEmail() == email-address) {
retrievedUser = user;
break;
}
}
// Update the next page token.
nextPageToken = response.getNextPageToken();
} while (!Strings.isNullOrEmpty(nextPageToken) && retrievedUser.isEmpty());
// Print user information if a user was found.
if (!retrievedUser.isEmpty()) {
System.out.printf("User %s was found.\n", retrievedUser.getName());
System.out.printf("User: %s, Display Name: %s, Email: %s\n",
retrievedUser.getUserId(),
retrievedUser.getDisplayName(),
retrievedUser.getEmail());
AssignedUserRole userRole;
for (int i = 0; i < retrievedUser.getAssignedUserRoles().size(); i++) {
userRole = retrievedUser.getAssignedUserRoles().get(i);
System.out.printf("Assigned User Role %s:\n", i+1);
if (userRole.getPartnerId() != null) {
System.out.printf("Partner ID: %s\n", userRole.getPartnerId());
} else {
System.out.printf("Advertiser ID: %s\n", userRole.getAdvertiserId());
}
System.out.printf("User Role: %s\n", userRole.getUserRole());
}
} else {
System.out.printf("No user was found with email address %s", email-address);
}
Python
# Create a variable to store the desired user once found.
retrieved_user = None
# Create the filter string for list call. Using this filter will return all
# users with an email address containing the specified value.
email_filter = 'email:"%s"' % email-address
# Create the page token variable.
next_page_token = ''
while True:
# Request the users list.
response = service.users().list(
filter=email_filter,
pageToken=next_page_token
).execute()
# Check if the response is empty.
if not response:
break
# Iterate over retrieved users.
for user in response['users']:
# Break from the loop if the user is found.
if user['email'] == email-address
retrieved_user = user
break
# Break out of the loop if there is no next page or if the user has been
# found.
if 'nextPageToken' not in response or user is not None:
break
# Update the next page token.
next_page_token = response['nextPageToken']
# Print user information if a user was found.
if retrieved_user:
print('User %s was found.' % retrieved_user['name'])
print('User: %s, Display Name: %s, Email: %s'
% (retrieved_user['userId'],
retrieved_user['displayName'],
retrieved_user['email']))
for index in range(len(retrieved_user['assignedUserRoles'])):
print('Assigned User Role %s:' % index)
if 'partnerId' in retrieved_user['assignedUserRoles'][0]:
print('Partner ID: %s' % retrieved_user['assignedUserRoles'][0]['partnerId'])
else:
print('Advertiser ID: %s' %
retrieved_user['assignedUserRoles'][0]['advertiserId'])
print('User Role: %s' % retrieved_user['assignedUserRoles'][0]['userRole'])
else:
print('No user was found with email address %s' % email-address)
PHP
// Create a variable to store the desired user once found.
$retrievedUser = null;
// Create the filter string with the desired user email.
$emailFilter = 'email:"' . email-address . '"';
# Create the page token variable.
$nextPageToken = '';
do {
// Build argument parameters for list call.
$optParams = array(
'filter' => $emailFilter,
'pageToken' => $nextPageToken
);
// Call the API, getting the line items with flights ending before the
// given date.
$response = $this->service->users->listUsers($optParams);
// If no line items are returned, break loop.
if (!empty($response->getUsers())) {
break;
}
foreach ($response->getUsers() as $user) {
if ($user->getEmail() == email-address) {
$retrievedUser = $user;
break;
}
}
$nextPageToken = $response->getNextPageToken();
} while (is_null($retrievedUser) && $nextPageToken);
// Print user information if a user was found.
if (!is_null($retrievedUser)) {
printf(
'User %s was found.\nUser: %s, Display Name: %s, Email: %s\n',
$retrievedUser->getName(),
$retrievedUser->getUserId(),
$retrievedUser->getDisplayName(),
$retrievedUser->getEmail()
);
// Print each assigned user role for user.
foreach ($retrievedUser->getAssignedUserRoles() as $userRole) {
print("Assigned User Role:\n");
if ($userRole->getPartnerId()) {
printf("\tPartner ID: %s\n", $userRole->getPartnerId());
} else {
printf("\tAdvertiser ID: %s\n", $userRole->getAdvertiserId());
}
printf("\tUser Role: %s\n", $userRole->getUserRole());
}
} else {
printf(
"No user was found with email address %s",
email-address
);
}
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\u003cp\u003eThis page provides instructions for retrieving user resources using an email address instead of a user ID.\u003c/p\u003e\n"],["\u003cp\u003eUser resources include user-specific information and permissions details.\u003c/p\u003e\n"],["\u003cp\u003eThe retrieval process involves filtering by email address using the \u003ccode\u003eusers.list\u003c/code\u003e method with the \u003ccode\u003efilter\u003c/code\u003e parameter.\u003c/p\u003e\n"],["\u003cp\u003eCode samples are provided in Java, Python, and PHP demonstrating the retrieval process.\u003c/p\u003e\n"]]],[],null,["# Retrieve a user\n\nThe user resource includes both user-specific information, such as the user\ndisplay name and unique ID, as well as permissions information, or [assigned\nuser roles](/display-video/api/reference/rest/current/users#assigneduserrole).\n\nThis page describes how to retrieve a user resource using an email address.\n\nRetrieve a user from filtered list\n----------------------------------\n\nDisplay \\& Video 360 API user resources have a unique ID assigned by the system upon\ncreation. This ID can be used to retrieve a user resource through the\n[`users.get`](/display-video/api/reference/rest/current/users/get) method. However, if you do not have the\n[`userId`](/display-video/api/reference/rest/current/users#User.FIELDS.user_id) for a user, you can still retrieve the user resource using\nthe [`users.list`](/display-video/api/reference/rest/current/users/list) method with the [`filter`](/display-video/api/reference/rest/current/users/list#body.QUERY_PARAMETERS.filter)\nparameter to filter by email address.\n\nHere's an example of how to retrieve your user resource using this method: \n\n### Java\n\n```java\n// Create a variable to store the desired user once found.\nUser retrievedUser = new User();\n\n// Create the filter string for list call. Using this filter will return all\n// users with an email address containing the specified value.\nString emailFilter = String.format(\"email:\\\"%s\\\"\", email-address);\n\n// Configure the list request.\nUsers.List request =\n service\n .users()\n .list();\n\n// Set the filter for the request.\nrequest.setFilter(emailFilter);\n\n// Create the response and nextPageToken variables.\nListUsersResponse response;\nString nextPageToken = null;\n\ndo {\n // Create and execute the list request.\n response = request.setPageToken(nextPageToken).execute();\n\n // Check if response is empty.\n if (response.isEmpty()) {\n break;\n }\n\n // Iterate over retrieved line items and add to total list.\n for (User user : response.getUsers()) {\n if (user.getEmail() == email-address) {\n retrievedUser = user;\n break;\n }\n }\n\n // Update the next page token.\n nextPageToken = response.getNextPageToken();\n\n} while (!Strings.isNullOrEmpty(nextPageToken) && retrievedUser.isEmpty());\n\n// Print user information if a user was found.\nif (!retrievedUser.isEmpty()) {\n System.out.printf(\"User %s was found.\\n\", retrievedUser.getName());\n System.out.printf(\"User: %s, Display Name: %s, Email: %s\\n\",\n retrievedUser.getUserId(),\n retrievedUser.getDisplayName(),\n retrievedUser.getEmail());\n\n AssignedUserRole userRole;\n\n for (int i = 0; i \u003c retrievedUser.getAssignedUserRoles().size(); i++) {\n userRole = retrievedUser.getAssignedUserRoles().get(i);\n\n System.out.printf(\"Assigned User Role %s:\\n\", i+1);\n\n if (userRole.getPartnerId() != null) {\n System.out.printf(\"Partner ID: %s\\n\", userRole.getPartnerId());\n } else {\n System.out.printf(\"Advertiser ID: %s\\n\", userRole.getAdvertiserId());\n }\n\n System.out.printf(\"User Role: %s\\n\", userRole.getUserRole());\n }\n} else {\n System.out.printf(\"No user was found with email address %s\", email-address);\n}\n```\n\n### Python\n\n```python\n# Create a variable to store the desired user once found.\nretrieved_user = None\n\n# Create the filter string for list call. Using this filter will return all\n# users with an email address containing the specified value.\nemail_filter = 'email:\"%s\"' % email-address\n\n# Create the page token variable.\nnext_page_token = ''\n\nwhile True:\n # Request the users list.\n response = service.users().list(\n filter=email_filter,\n pageToken=next_page_token\n ).execute()\n\n # Check if the response is empty.\n if not response:\n break\n\n # Iterate over retrieved users.\n for user in response['users']:\n # Break from the loop if the user is found.\n if user['email'] == email-address\n retrieved_user = user\n break\n\n # Break out of the loop if there is no next page or if the user has been\n # found.\n if 'nextPageToken' not in response or user is not None:\n break\n\n # Update the next page token.\n next_page_token = response['nextPageToken']\n\n# Print user information if a user was found.\nif retrieved_user:\n print('User %s was found.' % retrieved_user['name'])\n\n print('User: %s, Display Name: %s, Email: %s'\n % (retrieved_user['userId'],\n retrieved_user['displayName'],\n retrieved_user['email']))\n\n for index in range(len(retrieved_user['assignedUserRoles'])):\n print('Assigned User Role %s:' % index)\n\n if 'partnerId' in retrieved_user['assignedUserRoles'][0]:\n print('Partner ID: %s' % retrieved_user['assignedUserRoles'][0]['partnerId'])\n else:\n print('Advertiser ID: %s' %\n retrieved_user['assignedUserRoles'][0]['advertiserId'])\n\n print('User Role: %s' % retrieved_user['assignedUserRoles'][0]['userRole'])\nelse:\n print('No user was found with email address %s' % email-address)\n```\n\n### PHP\n\n```php\n// Create a variable to store the desired user once found.\n$retrievedUser = null;\n\n// Create the filter string with the desired user email.\n$emailFilter = 'email:\"' . \u003cvar translate=\"no\"\u003eemail-address\u003c/var\u003e . '\"';\n\n# Create the page token variable.\n$nextPageToken = '';\n\ndo {\n // Build argument parameters for list call.\n $optParams = array(\n 'filter' =\u003e $emailFilter,\n 'pageToken' =\u003e $nextPageToken\n );\n\n // Call the API, getting the line items with flights ending before the\n // given date.\n $response = $this-\u003eservice-\u003eusers-\u003elistUsers($optParams);\n\n // If no line items are returned, break loop.\n if (!empty($response-\u003egetUsers())) {\n break;\n }\n\n foreach ($response-\u003egetUsers() as $user) {\n if ($user-\u003egetEmail() == \u003cvar translate=\"no\"\u003eemail-address\u003c/var\u003e) {\n $retrievedUser = $user;\n break;\n }\n }\n\n $nextPageToken = $response-\u003egetNextPageToken();\n} while (is_null($retrievedUser) && $nextPageToken);\n\n// Print user information if a user was found.\nif (!is_null($retrievedUser)) {\n printf(\n 'User %s was found.\\nUser: %s, Display Name: %s, Email: %s\\n',\n $retrievedUser-\u003egetName(),\n $retrievedUser-\u003egetUserId(),\n $retrievedUser-\u003egetDisplayName(),\n $retrievedUser-\u003egetEmail()\n );\n\n // Print each assigned user role for user.\n foreach ($retrievedUser-\u003egetAssignedUserRoles() as $userRole) {\n print(\"Assigned User Role:\\n\");\n if ($userRole-\u003egetPartnerId()) {\n printf(\"\\tPartner ID: %s\\n\", $userRole-\u003egetPartnerId());\n } else {\n printf(\"\\tAdvertiser ID: %s\\n\", $userRole-\u003egetAdvertiserId());\n }\n printf(\"\\tUser Role: %s\\n\", $userRole-\u003egetUserRole());\n }\n} else {\n printf(\n \"No user was found with email address %s\",\n \u003cvar translate=\"no\"\u003eemail-address\u003c/var\u003e\n );\n}\n```"]]