Merchant API를 사용하면 판매자 센터 계정에 액세스할 수 있는 사용자와 액세스 권한을 프로그래매틱 방식으로 관리할 수 있습니다. 이는 보안을 유지하고 제품 관리, 보고서 보기, 계정 관리 등 역할을 수행하는 데 필요한 적절한 액세스 권한이 개인에게 있는지 확인하는 데 필수적입니다. 사용자를 추가하고, 액세스 권한을 업데이트하고, 현재 사용자를 확인하고, 더 이상 액세스 권한이 필요하지 않은 사용자를 삭제할 수 있습니다.
사용자 액세스를 관리할 때는 최소 권한의 원칙을 준수하여 사용자에게 특정 역할을 수행하는 데 필요한 최소한의 액세스 권한만 부여하고 그 이상은 부여하지 않도록 확인하는 것이 중요합니다.
사용자를 추가하면 사용자에게 초대가 전송되며, 사용자가 초대를 수락하면 부여된 액세스 권한으로 판매자 센터 계정에 액세스할 수 있습니다. 사용자 및 액세스 권한 관리에 대한 자세한 내용은 사용자 및 액세스 수준에 관한 도움이 필요합니다를 참고하세요.
지원되는 기능
- 만들기
- Delete
- Get
- List
- 업데이트
판매자 센터 계정과 연결된 사용자 목록 표시
판매자 센터 계정에 액세스할 수 있는 모든 사용자의 목록을 가져올 수 있습니다. 이는 액세스를 감사하고 현재 사용자 액세스 권한을 이해하는 데 유용합니다. 응답에는 각 사용자의 이메일과 할당된 액세스 권한이 포함됩니다.
이는 users.list
메서드에 해당합니다.
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users
요청이 성공하면 200 OK HTTP 상태 코드와 User
리소스 목록이 포함된 응답 본문이 반환됩니다.
{
"users": [
{
"name": "accounts/{ACCOUNT_ID}/users/user1@example.com",
"state": "VERIFIED",
"accessRights": [
"ADMIN"
]
},
{
"name": "accounts/{ACCOUNT_ID}/users/user2@example.com",
"state": "VERIFIED",
"accessRights": [
"STANDARD",
"PERFORMANCE_REPORTING"
]
}
]
}
자바
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.ListUsersRequest;
import com.google.shopping.merchant.accounts.v1beta.User;
import com.google.shopping.merchant.accounts.v1beta.UserServiceClient;
import com.google.shopping.merchant.accounts.v1beta.UserServiceClient.ListUsersPagedResponse;
import com.google.shopping.merchant.accounts.v1beta.UserServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to list all the users for a given Merchant Center account. */
public class ListUsersSample {
private static String getParent(String accountId) {
return String.format("accounts/%s", accountId);
}
public static void listUsers(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
UserServiceSettings userServiceSettings =
UserServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent to identify the account from which to list all users.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (UserServiceClient userServiceClient = UserServiceClient.create(userServiceSettings)) {
// The parent has the format: accounts/{account}
ListUsersRequest request = ListUsersRequest.newBuilder().setParent(parent).build();
System.out.println("Sending list users request:");
ListUsersPagedResponse response = userServiceClient.listUsers(request);
int count = 0;
// Iterates over all rows in all pages and prints the user
// in each row.
// `response.iterateAll()` automatically uses the `nextPageToken` and recalls the
// request to fetch all pages of data.
for (User element : response.iterateAll()) {
System.out.println(element);
count++;
}
System.out.print("The following count of elements were returned: ");
System.out.println(count);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
listUsers(config);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\ListUsersRequest;
use Google\Shopping\Merchant\Accounts\V1beta\Client\UserServiceClient;
/**
* Lists users.
*
* @param array $config The configuration data.
* @return void
*/
function listUsers($config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$userServiceClient = new UserServiceClient($options);
// Creates parent to identify the account from which to list all users.
$parent = sprintf("accounts/%s", $config['accountId']);
// Calls the API and catches and prints any network failures/errors.
try {
$request = new ListUsersRequest(['parent' => $parent]);
print "Sending list users request:\n";
$response = $userServiceClient->listUsers($request);
$count = 0;
foreach ($response->iterateAllElements() as $element) {
print_r($element);
$count++;
}
print "The following count of elements were returned: ";
print $count . "\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
$config = Config::generateConfig();
listUsers($config);
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import ListUsersRequest
from google.shopping.merchant_accounts_v1beta import UserServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_parent(account_id):
return f"accounts/{account_id}"
def list_users():
"""Lists all the users for a given Merchant Center account."""
# Get OAuth credentials
credentials = generate_user_credentials.main()
# Create a UserServiceClient
client = UserServiceClient(credentials=credentials)
# Create parent string
parent = get_parent(_ACCOUNT)
# Create the request
request = ListUsersRequest(parent=parent)
try:
print("Sending list users request:")
response = client.list_users(request=request)
count = 0
for element in response:
print(element)
count += 1
print("The following count of elements were returned: ")
print(count)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
list_users()
cURL
curl -L -X GET \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users' \
-H 'Authorization: Bearer <API_TOKEN>'
특정 사용자의 세부정보 가져오기
현재 액세스 권한 및 상태 (예: VERIFIED
또는 PENDING
)를 비롯하여 판매자 센터 계정과 연결된 특정 사용자에 관한 세부정보를 가져오려면 사용자의 Google 이메일 주소를 사용하면 됩니다.
이는 users.get
메서드에 해당합니다.
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}
요청이 성공하면 200 OK HTTP 상태 코드와 User
리소스가 포함된 응답 본문이 반환됩니다.
{
"name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
"state": "VERIFIED",
"accessRights": [
"ADMIN"
]
}
자바
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.GetUserRequest;
import com.google.shopping.merchant.accounts.v1beta.User;
import com.google.shopping.merchant.accounts.v1beta.UserName;
import com.google.shopping.merchant.accounts.v1beta.UserServiceClient;
import com.google.shopping.merchant.accounts.v1beta.UserServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to get a single user for a given Merchant Center account. */
public class GetUserSample {
public static void getUser(Config config, String email) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
UserServiceSettings userServiceSettings =
UserServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates user name to identify user.
String name =
UserName.newBuilder()
.setAccount(config.getAccountId().toString())
.setEmail(email)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (UserServiceClient userServiceClient = UserServiceClient.create(userServiceSettings)) {
// The name has the format: accounts/{account}/users/{email}
GetUserRequest request = GetUserRequest.newBuilder().setName(name).build();
System.out.println("Sending Get user request:");
User response = userServiceClient.getUser(request);
System.out.println("Retrieved User below");
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The email address of this user. If you want to get the user information
// Of the user making the Content API request, you can also use "me" instead
// Of an email address.
String email = "testUser@gmail.com";
getUser(config, email);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\GetUserRequest;
use Google\Shopping\Merchant\Accounts\V1beta\Client\UserServiceClient;
/**
* Retrieves a user.
*
* @param array $config The configuration data.
* @param string $email The email address of the user.
* @return void
*/
function getUser($config, $email): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$userServiceClient = new UserServiceClient($options);
// Creates user name to identify user.
$name = 'accounts/' . $config['accountId'] . "/users/" . $email;
// Calls the API and catches and prints any network failures/errors.
try {
$request = new GetUserRequest(['name' => $name]);
print "Sending Get user request:\n";
$response = $userServiceClient->getUser($request);
print "Retrieved User below\n";
print_r($response);
} catch (ApiException $e) {
print $e->getMessage();
}
}
$config = Config::generateConfig();
$email = "testUser@gmail.com";
getUser($config, $email);
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import GetUserRequest
from google.shopping.merchant_accounts_v1beta import UserServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_user(user_email):
"""Gets a single user for a given Merchant Center account."""
# Get OAuth credentials
credentials = generate_user_credentials.main()
# Create a UserServiceClient
client = UserServiceClient(credentials=credentials)
# Create user name string
name = "accounts/" + _ACCOUNT + "/users/" + user_email
# Create the request
request = GetUserRequest(name=name)
try:
print("Sending Get user request:")
response = client.get_user(request=request)
print("Retrieved User below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# Modify this email to get the user details
email = "USER_MAIL_ACCOUNT"
get_user(email)
cURL
curl -L -X GET \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}' \
-H 'Authorization: Bearer <API_TOKEN>'
판매자 센터 계정에 사용자 추가
Google 이메일 주소를 제공하고 원하는 액세스 권한을 지정하여 사용자에게 판매자 센터 계정에 대한 액세스 권한을 부여할 수 있습니다. 이 작업은 사용자에게 초대를 보냅니다. 사용자가 수락하면 정의된 권한으로 계정에 액세스할 수 있습니다.
이는 users.create
메서드에 해당합니다.
POST https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users?userId={USER_EMAILID}
요청 본문:
{
"accessRights": [
"STANDARD",
"PERFORMANCE_REPORTING"
],
"name": "accounts/{ACCOUNT_ID}/users/{NAME}"
}
다음을 바꿉니다.
- {ACCOUNT_ID}: 판매자 센터 계정의 고유 식별자입니다.
- {USER_EMAILID}: 추가하려는 사용자의 이메일 주소입니다.
- {NAME}:
accounts/
{ACCOUNT_ID}/user/
{EMAIL_ADDRESS} 형식의 사용자 리소스 이름입니다.
요청이 성공하면 200 OK HTTP 상태 코드와 새로 생성된 User
리소스가 포함된 응답 본문이 반환됩니다. 사용자가 초대를 수락할 때까지 일반적으로 PENDING
상태입니다.
{
"name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
"state": "PENDING",
"accessRights": [
"STANDARD",
"PERFORMANCE_REPORTING"
]
}
자바
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.AccessRight;
import com.google.shopping.merchant.accounts.v1beta.CreateUserRequest;
import com.google.shopping.merchant.accounts.v1beta.User;
import com.google.shopping.merchant.accounts.v1beta.UserServiceClient;
import com.google.shopping.merchant.accounts.v1beta.UserServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to create a user for a Merchant Center account. */
public class CreateUserSample {
private static String getParent(String accountId) {
return String.format("accounts/%s", accountId);
}
public static void createUser(Config config, String email) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
UserServiceSettings userServiceSettings =
UserServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates parent to identify where to insert the user.
String parent = getParent(config.getAccountId().toString());
// Calls the API and catches and prints any network failures/errors.
try (UserServiceClient userServiceClient = UserServiceClient.create(userServiceSettings)) {
CreateUserRequest request =
CreateUserRequest.newBuilder()
.setParent(parent)
// This field is the email address of the user.
.setUserId(email)
.setUser(
User.newBuilder()
.addAccessRights(AccessRight.ADMIN)
.addAccessRights(AccessRight.PERFORMANCE_REPORTING)
.build())
.build();
System.out.println("Sending Create User request");
User response = userServiceClient.createUser(request);
System.out.println("Inserted User Name below");
// The last part of the user name will be the email address of the user.
// Format: `accounts/{account}/user/{user}`
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The email address of this user.
String email = "testUser@gmail.com";
createUser(config, email);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\AccessRight;
use Google\Shopping\Merchant\Accounts\V1beta\CreateUserRequest;
use Google\Shopping\Merchant\Accounts\V1beta\User;
use Google\Shopping\Merchant\Accounts\V1beta\Client\UserServiceClient;
/**
* Creates a user.
*
* @param array $config The configuration data.
* @param string $email The email address of the user.
* @return void
*/
function createUser($config, $email): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$userServiceClient = new UserServiceClient($options);
// Creates parent to identify where to insert the user.
$parent = sprintf("accounts/%s", $config['accountId']);
// Calls the API and catches and prints any network failures/errors.
try {
$request = new CreateUserRequest([
'parent' => $parent,
'user_id' => $email,
'user' => (new User())
->setAccessRights([AccessRight::ADMIN,AccessRight::PERFORMANCE_REPORTING])
]);
print "Sending Create User request\n";
$response = $userServiceClient->createUser($request);
print "Inserted User Name below\n";
print $response->getName() . "\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
$config = Config::generateConfig();
$email = "testUser@gmail.com";
createUser($config, $email);
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import AccessRight
from google.shopping.merchant_accounts_v1beta import CreateUserRequest
from google.shopping.merchant_accounts_v1beta import User
from google.shopping.merchant_accounts_v1beta import UserServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_parent(account_id):
return f"accounts/{account_id}"
def create_user(user_email):
"""Creates a user for a Merchant Center account."""
# Get OAuth credentials
credentials = generate_user_credentials.main()
# Create a UserServiceClient
client = UserServiceClient(credentials=credentials)
# Create parent string
parent = get_parent(_ACCOUNT)
# Create the request
request = CreateUserRequest(
parent=parent,
user_id=user_email,
user=User(
access_rights=[AccessRight.ADMIN, AccessRight.PERFORMANCE_REPORTING]
),
)
try:
print("Sending Create User request")
response = client.create_user(request=request)
print("Inserted User Name below")
print(response.name)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# Modify this email to create a new user
email = "USER_MAIL_ACCOUNT"
create_user(email)
cURL
curl -L -X POST \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users?userId=newuser@example.com' \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Content-Type: application/json' \
--data-raw '{
"accessRights": [
"STANDARD"
]
}'
사용자의 액세스 권한 업데이트
판매자 센터 계정에서 기존 사용자의 액세스 수준을 수정할 수 있습니다. 예를 들어 사용자의 액세스 권한을 STANDARD
에서 ADMIN
액세스로 승격하거나 PERFORMANCE_REPORTING
권한을 추가할 수 있습니다. 변경사항은 인증된 사용자에게 즉시 적용됩니다.
이는 users.update
메서드에 해당합니다. 이 경우 accessRights
와 같이 업데이트되는 필드를 나타내기 위해 updateMask
쿼리 매개변수를 지정해야 합니다.
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}?updateMask=accessRights
요청 본문:
{
"name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
"accessRights": [
"ADMIN",
"PERFORMANCE_REPORTING"
]
}
요청이 성공하면 200 OK HTTP 상태 코드와 업데이트된 User
리소스가 포함된 응답 본문이 반환됩니다.
{
"name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
"state": "VERIFIED",
"accessRights": [
"ADMIN",
"PERFORMANCE_REPORTING"
]
}
자바
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.merchant.accounts.v1beta.AccessRight;
import com.google.shopping.merchant.accounts.v1beta.UpdateUserRequest;
import com.google.shopping.merchant.accounts.v1beta.User;
import com.google.shopping.merchant.accounts.v1beta.UserName;
import com.google.shopping.merchant.accounts.v1beta.UserServiceClient;
import com.google.shopping.merchant.accounts.v1beta.UserServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to update a user to make it an admin of the MC account. */
public class UpdateUserSample {
public static void updateUser(Config config, String email, AccessRight accessRight)
throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
UserServiceSettings userServiceSettings =
UserServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates user name to identify user.
String name =
UserName.newBuilder()
.setAccount(config.getAccountId().toString())
.setEmail(email)
.build()
.toString();
// Create a user with the updated fields.
User user = User.newBuilder().setName(name).addAccessRights(accessRight).build();
FieldMask fieldMask = FieldMask.newBuilder().addPaths("access_rights").build();
try (UserServiceClient userServiceClient = UserServiceClient.create(userServiceSettings)) {
UpdateUserRequest request =
UpdateUserRequest.newBuilder().setUser(user).setUpdateMask(fieldMask).build();
System.out.println("Sending Update User request");
User response = userServiceClient.updateUser(request);
System.out.println("Updated User Name below");
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
String email = "testUser@gmail.com";
// Give the user admin rights. Note that all other rights, like
// PERFORMANCE_REPORTING, would be overwritten in this example
// if the user had those access rights before the update.
AccessRight accessRight = AccessRight.ADMIN;
updateUser(config, email, accessRight);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Protobuf\FieldMask;
use Google\Shopping\Merchant\Accounts\V1beta\AccessRight;
use Google\Shopping\Merchant\Accounts\V1beta\UpdateUserRequest;
use Google\Shopping\Merchant\Accounts\V1beta\User;
use Google\Shopping\Merchant\Accounts\V1beta\Client\UserServiceClient;
/**
* Updates a user.
*
* @param array $config The configuration data.
* @param string $email The email address of the user.
* @param int $accessRight The access right to grant the user.
* @return void
*/
function updateUser($config, $email, $accessRights): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$userServiceClient = new UserServiceClient($options);
// Creates user name to identify user.
$name = 'accounts/' . $config['accountId'] . "/users/" . $email;
$user = (new User())
->setName($name)
->setAccessRights($accessRights);
$fieldMask = (new FieldMask())->setPaths(['access_rights']);
// Calls the API and catches and prints any network failures/errors.
try {
$request = new UpdateUserRequest([
'user' => $user,
'update_mask' => $fieldMask,
]);
print "Sending Update User request\n";
$response = $userServiceClient->updateUser($request);
print "Updated User Name below\n";
print $response->getName() . "\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
$config = Config::generateConfig();
$email = "testUser@gmail.com";
$accessRights = [AccessRight::ADMIN];
updateUser($config, $email, $accessRights);
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.protobuf import field_mask_pb2
from google.shopping.merchant_accounts_v1beta import AccessRight
from google.shopping.merchant_accounts_v1beta import UpdateUserRequest
from google.shopping.merchant_accounts_v1beta import User
from google.shopping.merchant_accounts_v1beta import UserServiceClient
FieldMask = field_mask_pb2.FieldMask
_ACCOUNT = configuration.Configuration().read_merchant_info()
def update_user(user_email, user_access_right):
"""Updates a user to make it an admin of the MC account."""
credentials = generate_user_credentials.main()
client = UserServiceClient(credentials=credentials)
# Create user name string
name = "accounts/" + _ACCOUNT + "/users/" + user_email
user = User(name=name, access_rights=[user_access_right])
field_mask = FieldMask(paths=["access_rights"])
try:
request = UpdateUserRequest(user=user, update_mask=field_mask)
print("Sending Update User request")
response = client.update_user(request=request)
print("Updated User Name below")
print(response.name)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# Modify this email to update the right user
email = "USER_MAIL_ACCOUNT"
access_right = AccessRight.ADMIN
update_user(email, access_right)
cURL
curl -L -X PATCH \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}?updateMask=accessRights' \
-H 'Authorization: Bearer <API_TOKEN>' \
-H 'Content-Type: application/json' \
--data-raw '{
"name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
"accessRights": [
"ADMIN",
"PERFORMANCE_REPORTING"
]
}'
판매자 센터 계정에서 사용자 삭제
판매자 센터 계정에 대한 사용자의 액세스 권한을 취소할 수 있습니다. 이 조치를 취하면 해당 사용자가 로그인하고 내 계정과 연결된 작업을 수행할 수 있는 권한이 영구적으로 삭제됩니다.
이는 users.delete
메서드에 해당합니다.
DELETE https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}
요청이 성공하면 사용자가 삭제되었음을 확인하는 빈 응답 {} 본문과 함께 200 OK HTTP 상태 코드가 반환됩니다.
자바
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.DeleteUserRequest;
import com.google.shopping.merchant.accounts.v1beta.UserName;
import com.google.shopping.merchant.accounts.v1beta.UserServiceClient;
import com.google.shopping.merchant.accounts.v1beta.UserServiceSettings;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to delete a user for a given Merchant Center account. */
public class DeleteUserSample {
public static void deleteUser(Config config, String email) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
UserServiceSettings userServiceSettings =
UserServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates user name to identify the user.
String name =
UserName.newBuilder()
.setAccount(config.getAccountId().toString())
.setEmail(email)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (UserServiceClient userServiceClient = UserServiceClient.create(userServiceSettings)) {
DeleteUserRequest request = DeleteUserRequest.newBuilder().setName(name).build();
System.out.println("Sending Delete User request");
userServiceClient.deleteUser(request); // no response returned on success
System.out.println("Delete successful.");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The email address of this user. If you want to delete the user information
// Of the user making the Content API request, you can also use "me" instead
// Of an email address.
String email = "testUser@gmail.com";
deleteUser(config, email);
}
}
PHP
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1beta\DeleteUserRequest;
use Google\Shopping\Merchant\Accounts\V1beta\Client\UserServiceClient;
/**
* Deletes a user.
*
* @param array $config The configuration data.
* @param string $email The email address of the user.
* @return void
*/
function deleteUser($config, $email): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$userServiceClient = new UserServiceClient($options);
// Creates user name to identify the user.
$name = 'accounts/' . $config['accountId'] . "/users/" . $email;
// Calls the API and catches and prints any network failures/errors.
try {
$request = new DeleteUserRequest(['name' => $name]);
print "Sending Delete User request\n";
$userServiceClient->deleteUser($request);
print "Delete successful.\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
$config = Config::generateConfig();
$email = "testUser@gmail.com";
deleteUser($config, $email);
Python
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1beta import DeleteUserRequest
from google.shopping.merchant_accounts_v1beta import UserServiceClient
_ACCOUNT = configuration.Configuration().read_merchant_info()
def delete_user(user_email):
"""Deletes a user for a given Merchant Center account."""
# Get OAuth credentials
credentials = generate_user_credentials.main()
# Create a UserServiceClient
client = UserServiceClient(credentials=credentials)
# Create user name string
name = "accounts/" + _ACCOUNT + "/users/" + user_email
# Create the request
request = DeleteUserRequest(name=name)
try:
print("Sending Delete User request")
client.delete_user(request=request)
print("Delete successful.")
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# Modify this email to delete the right user
email = "USER_MAIL_ACCOUNT"
delete_user(email)
cURL
curl -L -X DELETE \
'https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}' \
-H 'Authorization: Bearer <API_TOKEN>'