Questa guida spiega come utilizzare la risorsa
EmailPreferences
per gestire le notifiche email di Merchant Center e vedere quali
tipi di email riceve il users
del tuo account.
Per l'elenco completo dei tipi di notifiche via email, consulta il riferimento EmailPreferences
.
Puoi utilizzare l'API Merchant solo per gestire le notifiche via email per gli account in cui sei aggiunto come utente.
Per visualizzare o aggiornare le notifiche via email, devi disporre dei seguenti valori:
- L'indirizzo email dell'utente che riceve le email. Puoi trovare il suo
indirizzo email nel campo
name
della risorsaUser
. - L'ID commerciante dell'account per cui vuoi iniziare o interrompere la ricezione di email. Se l'account commerciante è un account avanzato e l'utente ha accesso all'account avanzato, utilizza l'ID commerciante dell'account avanzato.
Attivare o disattivare le notifiche
Per aggiornare le impostazioni di notifica via email per un account commerciante specifico, chiama
accounts.v1beta.accounts.users.updateEmailPreferences
con l'ACCOUNT_ID
dell'account e l'indirizzo email dell'utente.
Utilizza i seguenti valori per controllare le notifiche via email che l'utente riceve:
OPTED_IN
: per ricevere notifiche via email per l'account.OPTED_OUT
: non ricevere notifiche via email per l'account.
Di seguito è riportata una richiesta di esempio per disattivare le notifiche via email per un account merchant specifico:
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
{
"newsAndTips": "OPTED_OUT"
}
Per recuperare le preferenze email di un determinato utente, puoi utilizzare il metodo
google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest
, come mostrato nell'esempio seguente.
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);
}
}
Visualizzare le notifiche esistenti
Per visualizzare le impostazioni di notifica via email correnti per un utente specifico, chiama
accounts.v1beta.accounts.users.getEmailPreferences
.
Ecco una richiesta di esempio, in cui ACCOUNT_ID
è l'ID commerciante dell'account per cui sono state inviate le notifiche via email e EMAIL_ADDRESS
è l'indirizzo email dell'utente che le riceve.
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences
Ecco un esempio di risposta di una chiamata andata a buon fine:
{
"name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_IN"
}
Per recuperare le preferenze email di un determinato utente, puoi utilizzare il
package google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest
, come mostrato nell'esempio seguente.
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);
}
}
Per ulteriori informazioni sulle notifiche via email, consulta Modificare le preferenze email di Merchant Center.