Anda dapat menggunakan Merchant Accounts API untuk mengontrol siapa yang memiliki akses ke akun penjual Anda, dan level akses yang mereka miliki.
User
adalah seseorang yang memiliki akses ke akun penjual Anda. Anda dapat menggunakan Merchant
Accounts API untuk melihat, menambahkan, dan menghapus pengguna dari akun Anda.
Menambahkan pengguna ke akun
Untuk menambahkan pengguna, panggil metode accounts.users.create
dan tentukan tingkat akses mereka di kolom access_rights
dari User
.
Contoh permintaan berikut menunjukkan cara menambahkan pengguna baru dengan izin STANDARD
dan
PERFORMANCE_REPORTING
:
POST https://merchantapi.googleapis.com/accounts/v1beta/accounts/{ACCOUNT_ID}/users?userId={USER_EMAILID}
{
"accessRights": [
"STANDARD",
"PERFORMANCE_REPORTING"
],
"name": "{NAME}"
}
Ganti kode berikut:
- {ACCOUNT_ID}: ID unik akun Merchant Center Anda.
- {USER_EMAILID}: Alamat email pengguna yang ingin Anda tambahkan.
- {NAME}: Nama resource pengguna dalam format
accounts/
{ACCOUNT_ID}/user/
{EMAIL_ADDRESS}.
Setelah permintaan berhasil, respons berikut akan ditampilkan:
{
"name": "accounts/{ACCOUNT_ID}/users/{USER_EMAILID}",
"state": "PENDING",
"accessRights": [
"STANDARD",
"PERFORMANCE_REPORTING"
]
}
Permintaan ini akan mengirimkan undangan ke Akun Google yang terkait dengan pengguna baru, yang harus diterima agar pengguna tersebut dianggap sebagai anggota akun Anda.
Contoh berikut menunjukkan cara menggunakan metode CreateUserRequest
untuk menambahkan pengguna ke akun Anda.
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);
}
}
Melihat pengguna yang memiliki akses ke akun Anda
Untuk melihat semua pengguna yang memiliki akses ke akun Anda, gunakan metode
accounts.users.list
.
Contoh berikut menunjukkan cara menggunakan metode ListUsersRequest
untuk mencantumkan semua pengguna untuk akun tertentu.
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);
}
}
Mengambil satu pengguna untuk akun tertentu
Contoh berikut menunjukkan cara menggunakan metode
GetUserRequest
untuk mengambil pengguna untuk akun tertentu.
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);
}
}
Menghapus pengguna dari akun tertentu
Untuk menghapus pengguna dari akun, buat permintaan menggunakan metode accounts.users.delete
.
Contoh berikut menunjukkan cara menggunakan metode DeleteUserRequest
untuk menghapus pengguna dari akun tertentu.
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);
}
}
Mengubah tingkat akses pengguna
Untuk mengubah tingkat akses pengguna, panggil metode
accounts.users.patch
dengan tingkat akses baru.
Contoh berikut menunjukkan cara menggunakan metode UpdateUserSample
untuk memperbarui pengguna agar menjadi admin akun tertentu.
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);
}
}
Perbandingan antara akses admin super, admin, dan standar
Pengguna dengan akses admin super ke Pengelola Bisnis tidak dapat dihapus dari Merchant Center. Untuk informasi selengkapnya tentang akses admin super, lihat Mengelola bisnis sebagai admin super.
Beberapa metode, seperti metode yang menulis data akun, memerlukan akses admin. Untuk mempelajari level akses yang diperlukan untuk setiap metode, lihat dokumentasi referensi.
Jika tidak ada tingkat akses yang ditentukan, Anda dapat menggunakan metode dengan akses standar.
Langkah berikutnya
- Pelajari cara membuat dan mengelola sub-akun.
- Untuk memahami cara kerja hubungan antar-akun penjual, lihat Hubungan antar-akun.