このガイドでは、EmailPreferences
リソースを使用して Merchant Center のメール通知を管理し、アカウントの users
が受信するメールの種類を確認する方法について説明します。メール通知の種類の一覧については、EmailPreferences
リファレンスをご覧ください。
Merchant API を使用して管理できるのは、自分がユーザーとして追加されているアカウントのメール通知のみです。
メール通知を表示または更新するには、次の値が必要です。
- メールを受信するユーザーのメールアドレス。メールアドレスは、
User
リソースのname
フィールドで確認できます。 - メールの受信を開始または停止するアカウントの販売者 ID。販売者アカウントがアドバンス アカウントで、ユーザーがアドバンス アカウントにアクセスできる場合は、アドバンス アカウントの販売者 ID を使用します。
通知を有効または無効にする
特定の販売者アカウントのメール通知設定を更新するには、アカウントの ACCOUNT_ID
とユーザーの EMAIL_ADDRESS
を指定して accounts.v1beta.accounts.users.updateEmailPreferences
を呼び出します。
ユーザーに送信されるメール通知を制御するには、次の値を使用します。
OPTED_IN
: アカウントのメール通知を受け取る。OPTED_OUT
: アカウントのメール通知を受け取らない。
特定の販売者アカウントのメール通知をオプトアウトするリクエストの例を次に示します。
PATCH https://merchantapi.googleapis.com/accounts/v1beta/accounts/MERCHANT_ID/users/EMAIL_ADDRESS/emailPreferences
{
"newsAndTips": "OPTED_OUT"
}
呼び出しが成功した場合のレスポンスの例を次に示します。
{
"name": "accounts/MERCHANT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_OUT"
}
特定のユーザーのメール設定を取得するには、次のサンプルに示すように google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest
メソッドを使用します。
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferences;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferences.OptInState;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesName;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceClient;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceSettings;
import com.google.shopping.merchant.accounts.v1beta.UpdateEmailPreferencesRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to update a EmailPreferences to OPT_IN to News and Tips. This service
* only permits retrieving and updating email preferences for the authenticated user.
*/
public class UpdateEmailPreferencesSample {
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);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The email address of this user. If you want to get the user information
// Of the user making the Content API request, you can also use "me" instead
// Of an email address.
// String email = "testUser@gmail.com";
String email = "me";
updateEmailPreferences(config, email);
}
}
既存の通知を表示する
特定のユーザーの現在のメール通知設定を表示するには、accounts.v1beta.accounts.users.getEmailPreferences
を呼び出します。
以下にリクエストの例を示します。ACCOUNT_ID
はメール通知の対象となるアカウントの販売者 ID、EMAIL_ADDRESS
はメールを受信するユーザーのメールアドレスです。
GET https://merchantapi.googleapis.com/accounts/v1beta/accounts/MERCHANT_ID/users/EMAIL_ADDRESS/emailPreferences
呼び出しが成功した場合のレスポンスの例を次に示します。
{
"name": "accounts/ACCOUNT_ID/users/EMAIL_ADDRESS/emailPreferences",
"newsAndTips": "OPTED_IN"
}
特定のユーザーのメール設定を取得するには、次のサンプルに示すように google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest
パッケージを使用します。
Java
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferences;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesName;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceClient;
import com.google.shopping.merchant.accounts.v1beta.EmailPreferencesServiceSettings;
import com.google.shopping.merchant.accounts.v1beta.GetEmailPreferencesRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to get the email preferences of a Merchant Center account. */
public class GetEmailPreferencesSample {
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);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
// The email address of this user. If you want to get the user information
// Of the user making the Content API request, you can also use "me" instead
// Of an email address.
String email = "testUser@gmail.com";
// String email = "me";
getEmailPreferences(config, email);
}
}
メール通知の詳細については、Merchant Center のメール設定を変更するをご覧ください。