Hesabınıza erişimi kontrol etme

Satıcı hesabınıza kimlerin erişimi olduğunu ve bu kullanıcıların hangi erişim düzeyine sahip olduğunu kontrol etmek için Merchant Accounts API'yi kullanabilirsiniz.

User, satıcı hesabınıza erişimi olan bir kullanıcıdır. MerchantAccounts API'yi kullanarak hesabınızdaki kullanıcıları görüntüleyebilir, ekleyebilir ve kaldırabilirsiniz.

Hesabınıza kullanıcı ekleme

Kullanıcı eklemek için accounts.users.create yöntemini çağırın ve User öğesinin access_rights alanında kullanıcının erişim düzeyini belirtin.

Aşağıdaki örnek istek, STANDARD ve PERFORMANCE_REPORTING izinlerine sahip yeni bir kullanıcının nasıl ekleneceğini gösterir:

POST https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users?userId={USER_EMAILID}

{
  "accessRights": [
    "STANDARD",
    "PERFORMANCE_REPORTING"
  ],
  "name": "{NAME}"
}

Aşağıdakini değiştirin:

  • {ACCOUNT_ID}: Merchant Center hesabınızın benzersiz tanımlayıcısıdır.
  • {USER_EMAILID}: Eklemek istediğiniz kullanıcının e-posta adresi.
  • {NAME}: Kullanıcının accounts/{ACCOUNT_ID}/user/{EMAIL_ADDRESS} biçimindeki kaynak adı.

İstek başarılı olduktan sonra aşağıdaki yanıt döndürülür:

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

Bu istek, yeni kullanıcıyla ilişkili Google Hesabı'na bir davetiye gönderir. Kullanıcının hesabınızın üyesi olarak kabul edilmesi için bu davetiyenin kabul edilmesi gerekir.

Aşağıdaki örnekte, hesabınıza kullanıcı eklemek için CreateUserRequest yöntemini nasıl kullanabileceğiniz gösterilmektedir.

Java

  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);
    }
  }

Hesabınıza erişimi olan kullanıcıları görüntüleme

Hesabınıza erişimi olan tüm kullanıcıları görüntülemek için accounts.users.list yöntemini kullanın.

Aşağıdaki örnekte, belirli bir hesaptaki tüm kullanıcıları listelemek için ListUsersRequest yöntemini nasıl kullanabileceğiniz gösterilmektedir.

Java

  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);
    }
  }

Belirli bir hesap için tek bir kullanıcıyı alma

Aşağıdaki örnekte, belirli bir hesaptaki bir kullanıcıyı almak için GetUserRequest yöntemini nasıl kullanabileceğiniz gösterilmektedir.

Java

  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);
    }
  }

Belirli bir hesaptan kullanıcı kaldırma

Bir kullanıcıyı hesabınızdan kaldırmak için accounts.users.delete yöntemini kullanarak istek gönderin.

Aşağıdaki örnekte, bir kullanıcıyı belirli bir hesaptan kaldırmak için DeleteUserRequest yöntemini nasıl kullanabileceğiniz gösterilmektedir.

Java

  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);
    }
  }

Kullanıcıların erişim düzeyini değiştirme

Bir kullanıcının erişim düzeyini değiştirmek için accounts.users.patch yöntemini yeni erişim düzeyiyle çağırın.

Aşağıdaki örnekte, bir kullanıcıyı belirli bir hesabın yöneticisi yapmak için UpdateUserSample yöntemini nasıl kullanabileceğiniz gösterilmektedir.

Java

  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);
    }
  }

Süper yönetici, yönetici ve standart erişim karşılaştırması

İşletme Yöneticisi'ne süper yönetici erişimi olan kullanıcılar Merchant Center'dan kaldırılamaz. Süper yönetici erişimi hakkında daha fazla bilgi için İşletmenizi süper yönetici olarak yönetme başlıklı makaleyi inceleyin.

Hesap verilerini yazan yöntemler gibi bazı yöntemler yönetici erişimi gerektirir. Her yöntem için gerekli erişim düzeyini öğrenmek üzere referans dokümanlarına bakın.

Erişim düzeyi belirtilmezse yöntemi standart erişim ile kullanabilirsiniz.

Sırada ne var?