ควบคุมการเข้าถึงบัญชีของคุณ

Merchant API ช่วยให้คุณจัดการโดยอัตโนมัติว่าใครสามารถเข้าถึงบัญชี Merchant Center และสิทธิ์การเข้าถึงของบุคคลเหล่านั้นได้ ซึ่งจำเป็นต่อการรักษาความปลอดภัยและยืนยันว่าบุคคลมีสิทธิ์เข้าถึงที่เหมาะสมในการทำหน้าที่ของตน ไม่ว่าจะเป็นการจัดการผลิตภัณฑ์ การดูรายงาน หรือการดูแลบัญชี คุณสามารถเพิ่มผู้ใช้ อัปเดตสิทธิ์เข้าถึง ดูผู้ใช้ปัจจุบัน และ นำผู้ใช้ที่ไม่จำเป็นต้องเข้าถึงออกได้

เมื่อจัดการการเข้าถึงของผู้ใช้ สิ่งสำคัญคือต้องยึดมั่นในหลักการของสิทธิ์ขั้นต่ำ โดยตรวจสอบว่าผู้ใช้ได้รับสิทธิ์การเข้าถึงที่จำเป็นขั้นต่ำเท่านั้นที่จำเป็นต่อการปฏิบัติบทบาทเฉพาะของตน และไม่ได้รับสิทธิ์อื่นๆ

เมื่อเพิ่มผู้ใช้ ผู้ใช้จะได้รับคำเชิญ และเมื่อยอมรับแล้ว ผู้ใช้จะเข้าถึงบัญชี Merchant Center ได้โดยมีสิทธิ์เข้าถึงที่คุณให้ไว้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการผู้ใช้และสิทธิ์การเข้าถึงได้ที่ฉันต้องการความช่วยเหลือเกี่ยวกับผู้ใช้และระดับการเข้าถึง

ฟีเจอร์ที่รองรับ

  • สร้าง
  • ลบ
  • ดาวน์โหลด
  • รายการ
  • อัปเดต

แสดงรายชื่อผู้ใช้ที่เชื่อมโยงกับบัญชี Merchant Center

คุณสามารถดึงรายชื่อผู้ใช้ทั้งหมดที่มีสิทธิ์เข้าถึงบัญชี Merchant Center ได้ ซึ่งมีประโยชน์ในการตรวจสอบสิทธิ์เข้าถึงและทำความเข้าใจสิทธิ์เข้าถึงของผู้ใช้ปัจจุบัน การตอบกลับจะมีอีเมลของผู้ใช้แต่ละรายและสิทธิ์การเข้าถึงที่กำหนด

ซึ่งสอดคล้องกับเมธอด users.list

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users

คำขอที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 OK และเนื้อความของการตอบกลับพร้อม รายการ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"
      ]
    }
  ]
}

Java

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>'

ดูรายละเอียดสำหรับผู้ใช้ที่เฉพาะเจาะจง

หากต้องการดึงข้อมูลโดยละเอียดเกี่ยวกับผู้ใช้ที่เฉพาะเจาะจงซึ่งเชื่อมโยงกับบัญชี Merchant Center รวมถึงสิทธิ์การเข้าถึงและสถานะปัจจุบัน (เช่น VERIFIED หรือ PENDING) คุณสามารถใช้อีเมล Google ของผู้ใช้ได้

ซึ่งสอดคล้องกับเมธอด users.get

GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}

คำขอที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 OK และเนื้อความของการตอบกลับที่มีUserทรัพยากร

{
  "name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
  "state": "VERIFIED",
  "accessRights": [
    "ADMIN"
  ]
}

Java

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>'

เพิ่มผู้ใช้ไปยังบัญชี Merchant Center

คุณให้สิทธิ์ผู้ใช้เข้าถึงบัญชี Merchant Center ได้โดยระบุ อีเมล 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}: ตัวระบุที่ไม่ซ้ำกันของบัญชี Merchant Center
  • {USER_EMAILID}: อีเมลของผู้ใช้ที่คุณต้องการเพิ่ม
  • {NAME}: ชื่อทรัพยากรของผู้ใช้ในรูปแบบ accounts/{ACCOUNT_ID}/user/ {EMAIL_ADDRESS}

คำขอที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 OK และเนื้อหาการตอบกลับที่มีUserทรัพยากรที่สร้างขึ้นใหม่ โดยปกติจะอยู่ในสถานะ PENDING จนกว่าผู้ใช้จะยอมรับคำเชิญ

{
  "name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
  "state": "PENDING",
  "accessRights": [
    "STANDARD",
    "PERFORMANCE_REPORTING"
  ]
}

Java

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"
  ]
}'

อัปเดตสิทธิ์เข้าถึงของผู้ใช้

คุณแก้ไขระดับการเข้าถึงของผู้ใช้ที่มีอยู่ในบัญชี Merchant Center ได้ เช่น คุณสามารถยกระดับสิทธิ์การเข้าถึงของผู้ใช้จาก STANDARD เป็น ADMIN หรือเพิ่มสิทธิ์ PERFORMANCE_REPORTING ได้ การเปลี่ยนแปลงจะมีผลทันทีสำหรับ ผู้ใช้ที่ยืนยันแล้ว

ซึ่งสอดคล้องกับเมธอด users.update คุณต้องระบุพารามิเตอร์การค้นหา updateMask เพื่อระบุว่ามีการอัปเดตฟิลด์ใด ในกรณีนี้คือ accessRights

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"
  ]
}

คำขอที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 OK และเนื้อความของการตอบกลับที่มี ทรัพยากร User ที่อัปเดตแล้ว

{
  "name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
  "state": "VERIFIED",
  "accessRights": [
    "ADMIN",
    "PERFORMANCE_REPORTING"
  ]
}

Java

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"
  ]
}'

นำผู้ใช้ออกจากบัญชี Merchant Center

คุณเพิกถอนสิทธิ์ของผู้ใช้ในการเข้าถึงบัญชี Merchant Center ได้ การดำเนินการนี้ จะนำความสามารถในการลงชื่อเข้าใช้และดำเนินการใดๆ ที่เชื่อมโยง กับบัญชีของคุณออกอย่างถาวร

ซึ่งสอดคล้องกับเมธอด users.delete

DELETE https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users/{USER_EMAILID}

คำขอที่สำเร็จจะแสดงรหัสสถานะ HTTP 200 OK พร้อมกับเนื้อหาการตอบกลับที่ว่างเปล่า {} เพื่อยืนยันว่าระบบได้นำผู้ใช้ออกแล้ว

Java

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>'