En esta guía, se explica cómo usar el recurso EmailPreferences
para administrar tus notificaciones por correo electrónico de Merchant Center y ver qué tipos de correos electrónicos recibe el users
de tu cuenta.
Para obtener la lista completa de los tipos de notificaciones por correo electrónico, consulta la referencia de EmailPreferences
.
Solo puedes usar la API de Merchant para administrar las notificaciones por correo electrónico de las cuentas en las que te agregan como usuario.
Para ver o actualizar las notificaciones por correo electrónico, necesitas los siguientes valores:
- Es la dirección de correo electrónico del usuario que recibe los correos electrónicos. Puedes encontrar su dirección
de correo electrónico en el campo
name
del recursoUser
. - El ID de comerciante de la cuenta sobre la que quieres comenzar a recibir o dejar de recibir correos electrónicos Si la cuenta del comercio es una cuenta avanzada y el usuario tiene acceso a ella, usa el ID del comercio de la cuenta avanzada.
Cómo habilitar o inhabilitar las notificaciones
Para actualizar la configuración de notificaciones por correo electrónico de una cuenta de comerciante específica, llama a accounts.v1beta.accounts.users.updateEmailPreferences
con el ACCOUNT_ID
de la cuenta y la dirección de correo electrónico del usuario.
Usa los siguientes valores para controlar las notificaciones por correo electrónico que recibe el usuario:
OPTED_IN
: Recibir notificaciones por correo electrónico de la cuentaOPTED_OUT
: No recibir notificaciones por correo electrónico de la cuenta.
A continuación, se muestra una solicitud de ejemplo para inhabilitar las notificaciones por correo electrónico de una cuenta de comerciante específica:
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
{
"newsAndTips": "OPTED_OUT"
}
Para recuperar las preferencias de correo electrónico de un usuario en particular, puedes usar el método google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest
, como se muestra en el siguiente ejemplo.
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);
}
}
Cómo ver las notificaciones existentes
Para ver la configuración actual de las notificaciones por correo electrónico de un usuario específico, llama a accounts.v1beta.accounts.users.getEmailPreferences
.
Esta es una solicitud de muestra, en la que ACCOUNT_ID
es el ID del comercio de la cuenta sobre la que se envían las notificaciones por correo electrónico y EMAIL_ADDRESS
es la dirección de correo electrónico del usuario que recibe los correos electrónicos.
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
Esta es una respuesta de ejemplo de una llamada correcta:
{
"name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_IN"
}
Para recuperar las preferencias de correo electrónico de un usuario en particular, puedes usar el paquete google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest
, como se muestra en el siguiente ejemplo.
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 obtener más información sobre las notificaciones por correo electrónico, consulta Cómo cambiar las preferencias de correo electrónico de Merchant Center.