本指南介绍了如何使用 EmailPreferences
资源管理 Merchant Center 电子邮件通知,以及查看您账号的 users
会收到哪些类型的电子邮件。如需查看电子邮件通知类型的完整列表,请参阅 EmailPreferences
参考文档。
您只能使用 Merchant API 管理您被添加为用户的账号的电子邮件通知。
如需查看或更新电子邮件通知,您需要以下值:
- 接收电子邮件的用户的电子邮件地址。您可以在
User
资源的name
字段中找到他们的电子邮件地址。 - 要开始或停止接收相关电子邮件的账号的商家 ID。如果商家账号是高级账号,并且用户有权访问高级账号,请使用高级账号的商家 ID。
选择启用或停用通知
如需更新特定商家账号的电子邮件通知设置,请使用账号的 ACCOUNT_ID
和用户的电子邮件地址调用 accounts.v1beta.accounts.users.updateEmailPreferences
。
您可以使用以下值来控制用户收到的电子邮件通知:
OPTED_IN
:接收账号的电子邮件通知。OPTED_OUT
:不会收到该账号的电子邮件通知。
以下是用于让用户停用特定商家账号的电子邮件通知的示例请求:
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
{
"newsAndTips": "OPTED_OUT"
}
如需检索特定用户的电子邮件偏好设置,您可以使用 google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest
方法,如以下示例所示。
Java
public static void updateEmailPreferences(Config config, String email) throws Exception {
GoogleCredentials credential = new Authenticator().authenticate();
EmailPreferencesServiceSettings emailPreferencesServiceSettings =
EmailPreferencesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates EmailPreferences name to identify EmailPreferences.
String name =
EmailPreferencesName.newBuilder()
.setAccount(config.getAccountId().toString())
.setEmail(email)
.build()
.toString();
// Create a EmailPreferences with the updated fields.
EmailPreferences emailPreferences =
EmailPreferences.newBuilder().setName(name).setNewsAndTips(OptInState.OPTED_IN).build();
FieldMask fieldMask = FieldMask.newBuilder().addPaths("news_and_tips").build();
try (EmailPreferencesServiceClient emailPreferencesServiceClient =
EmailPreferencesServiceClient.create(emailPreferencesServiceSettings)) {
UpdateEmailPreferencesRequest request =
UpdateEmailPreferencesRequest.newBuilder()
.setEmailPreferences(emailPreferences)
.setUpdateMask(fieldMask)
.build();
System.out.println("Sending Update EmailPreferences request");
EmailPreferences response = emailPreferencesServiceClient.updateEmailPreferences(request);
System.out.println("Updated EmailPreferences Name below");
System.out.println(response.getName());
} catch (Exception e) {
System.out.println(e);
}
}
查看现有通知
如需查看特定用户的当前电子邮件通知设置,请调用 accounts.v1beta.accounts.users.getEmailPreferences
。
以下是一个示例请求,其中 ACCOUNT_ID
是电子邮件通知所涉及账号的商家 ID,EMAIL_ADDRESS
是接收电子邮件的用户的电子邮件地址。
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
以下是成功调用的示例响应:
{
"name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_IN"
}
如需检索特定用户的电子邮件偏好设置,您可以使用 google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest
软件包,如以下示例所示。
Java
public static void getEmailPreferences(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.
EmailPreferencesServiceSettings emailPreferencesServiceSettings =
EmailPreferencesServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates EmailPreferences name to identify the EmailPreferences.
String name =
EmailPreferencesName.newBuilder()
.setAccount(config.getAccountId().toString())
.setEmail(email)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (EmailPreferencesServiceClient emailPreferencesServiceClient =
EmailPreferencesServiceClient.create(emailPreferencesServiceSettings)) {
// The name has the format: accounts/{account}/users/{user}/emailPreferences
GetEmailPreferencesRequest request =
GetEmailPreferencesRequest.newBuilder().setName(name).build();
System.out.println("Sending get EmailPreferences request:");
EmailPreferences response = emailPreferencesServiceClient.getEmailPreferences(request);
System.out.println("Retrieved EmailPreferences below");
System.out.println(response);
} catch (Exception e) {
System.out.println(e);
}
}
如需详细了解电子邮件通知,请参阅更改 Merchant Center 电子邮件接收设置。