В этом руководстве объясняется, как использовать ресурс EmailPreferences
для управления уведомлениями по электронной почте Merchant Center и просмотра типов электронных писем, которые получают users
вашего аккаунта. Полный список типов уведомлений по электронной почте см. в справочнике EmailPreferences
.
Вы можете использовать Merchant API для управления уведомлениями по электронной почте только для аккаунтов, в которых вы добавлены в качестве пользователя .
Чтобы просмотреть или обновить уведомления по электронной почте, вам потребуются следующие значения:
- Адрес электронной почты пользователя, который получает электронные письма. Вы можете найти их адрес электронной почты в поле
name
ресурсаUser
. - Идентификатор продавца учетной записи, о которой можно начать или прекратить получать электронные письма. Если учетная запись продавца является расширенной учетной записью и у пользователя есть доступ к расширенной учетной записи , используйте идентификатор продавца расширенной учетной записи.
Включить или отключить уведомления
Чтобы обновить настройки уведомлений по электронной почте для определенной учетной записи продавца, accounts.v1beta.accounts.users.updateEmailPreferences
, указав ACCOUNT_ID
учетной записи и адрес электронной почты пользователя.
Используйте следующие значения для управления уведомлениями по электронной почте, которые получает пользователь:
-
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
, как показано в следующем примере.
Ява
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
— это идентификатор продавца учетной записи, о которой отправляются уведомления по электронной почте, а 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
, как показано в следующем примере.
Ява
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 .