用户资源包括用户特定的信息,例如用户 显示名和唯一 ID 以及权限信息,或者分配给 用户角色。
本页面介绍了如何使用电子邮件地址检索用户资源。
从过滤列表中检索用户
展示广告与系统为视频 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 ); }