Este guia explica como usar o recurso
EmailPreferences
para gerenciar suas notificações por e-mail do
Merchant Center e ver quais
tipos de e-mails a users
da sua conta recebe.
Para conferir a lista completa de tipos de notificação por e-mail, consulte a referência do EmailPreferences
.
Só é possível usar a API Merchant para gerenciar notificações por e-mail em contas em que você foi adicionado como usuário.
Para conferir ou atualizar as notificações por e-mail, você precisa dos seguintes valores:
- O endereço de e-mail do usuário que recebe os e-mails. Você pode encontrar o endereço de e-mail no campo
name
do recursoUser
. - O ID do comerciante da conta para começar ou parar de receber e-mails. Se a conta do comerciante for uma conta avançada e o usuário tiver acesso a ela, use o ID do comerciante da conta avançada.
Ativar ou desativar as notificações
Para atualizar as configurações de notificação por e-mail de uma conta de comerciante específica, chame
accounts.v1beta.accounts.users.updateEmailPreferences
com o ACCOUNT_ID
da conta e o endereço de e-mail do usuário.
Use os valores a seguir para controlar as notificações por e-mail que o usuário recebe:
OPTED_IN
: receber notificações por e-mail da conta.OPTED_OUT
: não receber notificações por e-mail da conta.
Confira um exemplo de solicitação para desativar as notificações por e-mail de uma conta de comerciante específica:
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
{
"newsAndTips": "OPTED_OUT"
}
Para extrair as preferências de e-mail de um usuário específico, use o método
google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest
, conforme mostrado no exemplo a seguir.
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);
}
}
Conferir notificações
Para conferir as configurações de notificação por e-mail atuais de um usuário específico, chame
accounts.v1beta.accounts.users.getEmailPreferences
.
Confira um exemplo de solicitação, em que ACCOUNT_ID
é o ID do comerciante da
conta relacionada às notificações por e-mail e EMAIL_ADDRESS
é o endereço de e-mail
do usuário que recebe os e-mails.
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
Confira um exemplo de resposta de uma chamada bem-sucedida:
{
"name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_IN"
}
Para recuperar as preferências de e-mail de um usuário específico, use o pacote
google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest
, conforme mostrado no exemplo a seguir.
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);
}
}
Para mais informações sobre as notificações por e-mail, consulte Mudar as preferências de e-mail do Merchant Center.