این راهنما نحوه مدیریت تنظیمات اعلان ایمیل حساب مرکز فروشندگان شما را برای ایمیلهای غیر اجباری با استفاده از API فروشندگان توضیح میدهد.
تنظیمات ایمیل شما مختص هر حساب مرکز بازرگانان است که به آن دسترسی دارید. اگر چندین حساب را مدیریت میکنید، میتوانید تنظیمات مختلفی را برای هر یک از آنها تنظیم کنید. رابط برنامهنویسی کاربردی بازرگانان به شما امکان میدهد تنظیمات فعلی خود را بازیابی کرده و آنها را بهروزرسانی کنید. برای اطلاعات بیشتر در مورد مدیریت تنظیمات ایمیل از طریق رابط مرکز بازرگانان، به تغییر تنظیمات ایمیل مرکز بازرگانان مراجعه کنید.
رابط برنامهنویسی کاربردی فروشنده (Merchant API) فقط از مدیریت تنظیمات برگزیده برای ایمیلهای «اخبار و نکات» پشتیبانی میکند.
ملاحظات ویژه
- فقط کاربر احراز هویت شده : شما فقط میتوانید تنظیمات ایمیل حساب کاربری که برای فراخوانی API احراز هویت شده است را دریافت یا بهروزرسانی کنید. باید آدرس ایمیل این کاربر را در مسیر درخواست مشخص کنید (برای مثال،
user@email.com) یا از نام مستعارmeاستفاده کنید. - حسابهای پیشرفته : اگر شما یک کاربر حساب پیشرفته هستید، تنظیمات ایمیل شما در سطح حساب پیشرفته تنظیم میشود و برای خود حساب پیشرفته و تمام حسابهای فرعی آن اعمال میشود. هنگام استفاده از API، کاربران حساب پیشرفته باید شناسه حساب پیشرفته را برای مدیریت تنظیمات خود مشخص کنند.
- حسابهای خدماتی : حسابهای خدماتی حتی اگر تنظیمات ایمیل برایشان تنظیم شده باشد، اعلان دریافت نمیکنند.
- وضعیت
UNCONFIRMED: وضعیت تأییدUNCONFIRMEDبرای یک اولویت ایمیل فقط توسط سرور قابل تنظیم است. شما نمیتوانید با استفاده از API یک اولویت را رویUNCONFIRMEDتنظیم کنید. تلاش برای تنظیم این اولویت منجر به خطا میشود. وضعیتUNCONFIRMEDنشان میدهد که یک ایمیل تأیید برای کاربری که انتخاب کرده ارسال شده است، اما هنوز روی لینک تأیید کلیک نکرده است.
تنظیمات ایمیل مرکز بازرگانان خود را بررسی کنید
برای مشاهده تنظیمات فعلی اعلان ایمیل برای یک حساب کاربری خاص در مرکز بازرگانان، از متد GetEmailPreferences استفاده کنید. باید شناسه حساب کاربری مرکز بازرگانان خود را ارائه دهید و از آدرس ایمیل کاربر یا نام مستعار me برای نشان دادن کاربر احراز هویت شده استفاده کنید.
این درخواست منبع EmailPreferences را بازیابی میکند که وضعیت عضویت شما را برای دستههای اعلان موجود، مانند news_and_tips نشان میدهد.
GET https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences
یک درخواست موفق، منبع EmailPreferences را که تنظیمات فعلی شما را نشان میدهد، برمیگرداند.
پاسخ نمونه:
{
"name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
"news_and_tips": "OPTED_IN"
}
این نمونه کد نحوه بازیابی تنظیمات ایمیل برای حساب مرکز فروشندگان شما را نشان میدهد.
جاوا
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.EmailPreferences;
import com.google.shopping.merchant.accounts.v1.EmailPreferencesName;
import com.google.shopping.merchant.accounts.v1.EmailPreferencesServiceClient;
import com.google.shopping.merchant.accounts.v1.EmailPreferencesServiceSettings;
import com.google.shopping.merchant.accounts.v1.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);
}
}
پی اچ پی
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\EmailPreferencesServiceClient;
use Google\Shopping\Merchant\Accounts\V1\GetEmailPreferencesRequest;
/**
* This class demonstrates how to get the email preferences of a Merchant Center account.
*/
class GetEmailPreferences
{
/**
* Gets the email preferences of a Merchant Center account.
*
* @param array $config
* The configuration data used for authentication and getting the acccount ID.
* @param string $email The email address of this user. If you want to get the user information
* of the user making the Merchant API request, you can also use "me" instead
* of an email address.
*
* @return void
*/
public static function getEmailPreferencesSample($config, $email): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$emailPreferencesServiceClient = new EmailPreferencesServiceClient($options);
// Creates EmailPreferences name to identify the EmailPreferences.
// The name has the format: accounts/{account}/users/{user}/emailPreferences
$name = "accounts/" . $config['accountId'] . "/users/" . $email . "/emailPreferences";
// Calls the API and catches and prints any network failures/errors.
try {
$request = (new GetEmailPreferencesRequest())
->setName($name);
print "Sending get EmailPreferences request:\n";
$response = $emailPreferencesServiceClient->getEmailPreferences($request);
print "Retrieved EmailPreferences below\n";
print_r($response);
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
// The email address of this user. If you want to get the user information
// Of the user making the Merchant API request, you can also use "me" instead
// Of an email address.
// $email = "testUser@gmail.com";
$email = "me";
self::getEmailPreferencesSample($config, $email);
}
}
// Run the script
$sample = new GetEmailPreferences();
$sample->callSample();
پایتون
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import EmailPreferencesServiceClient
from google.shopping.merchant_accounts_v1 import GetEmailPreferencesRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_email_preferences(email_address):
"""Gets the email preferences of a Merchant Center account."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = EmailPreferencesServiceClient(credentials=credentials)
# Creates EmailPreferences name to identify the EmailPreferences.
name = (
"accounts/" + _ACCOUNT + "/users/" + email_address + "/emailPreferences"
)
# Creates the request.
request = GetEmailPreferencesRequest(name=name)
# Makes the request and catches and prints any error messages.
try:
response = client.get_email_preferences(request=request)
print("Retrieved EmailPreferences below")
print(response)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# 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.
# email = "testUser@gmail.com"
email = "me"
get_email_preferences(email)
حلقه
curl --location \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences' \
--header 'Authorization: Bearer <API_TOKEN>'
تنظیمات ایمیل مرکز بازرگانان خود را تغییر دهید
برای تغییر تنظیمات اعلان ایمیل خود، مانند انتخاب یا عدم انتخاب ایمیلهای «اخبار و نکات»، از متد UpdateEmailPreferences استفاده کنید.
در درخواست خود، شناسه حساب مرکز بازرگانان را ارائه میدهید و از آدرس ایمیل خود (یا نام مستعار me ) برای ایمیل کاربر استفاده میکنید. بدنه درخواست باید شامل شیء EmailPreferences با opt_in_state انتخاب شده برای فیلد news_and_tips باشد. همچنین باید news_and_tips در پارامتر پرس و جوی update_mask مشخص کنید تا نشان دهید کدام ترجیح را تغییر میدهید.
این اقدام، تنظیمات ایمیل را برای کاربر احراز هویت شده برای حساب مرکز فروشندگان مشخص شده بهروزرسانی میکند. برای مثال، تنظیم news_and_tips روی OPTED_OUT مانع از دریافت ایمیلهای «اخبار و نکات» برای آن حساب میشود.
PATCH https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences?update_mask=news_and_tips
نمونه درخواست (برای انصراف از «اخبار و نکات»):
{
"name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
"news_and_tips": "OPTED_OUT"
}
یک درخواست موفق، منبع بهروزرسانیشدهی EmailPreferences را برمیگرداند.
نمونه پاسخ:
{
"name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
"news_and_tips": "OPTED_OUT"
}
این نمونه کد نحوه بهروزرسانی تنظیمات ایمیل برای حساب مرکز فروشندگان شما را نشان میدهد، برای مثال برای انتخاب ایمیلهای «اخبار و نکات».
جاوا
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.protobuf.FieldMask;
import com.google.shopping.merchant.accounts.v1.EmailPreferences;
import com.google.shopping.merchant.accounts.v1.EmailPreferences.OptInState;
import com.google.shopping.merchant.accounts.v1.EmailPreferencesName;
import com.google.shopping.merchant.accounts.v1.EmailPreferencesServiceClient;
import com.google.shopping.merchant.accounts.v1.EmailPreferencesServiceSettings;
import com.google.shopping.merchant.accounts.v1.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);
}
}
پی اچ پی
use Google\ApiCore\ApiException;
use Google\Protobuf\FieldMask;
use Google\Shopping\Merchant\Accounts\V1\Client\EmailPreferencesServiceClient;
use Google\Shopping\Merchant\Accounts\V1\EmailPreferences;
use Google\Shopping\Merchant\Accounts\V1\EmailPreferences\OptInState;
use Google\Shopping\Merchant\Accounts\V1\UpdateEmailPreferencesRequest;
/**
* 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.
*/
class UpdateEmailPreferences
{
/**
* Updates email preferences to OPT_IN to News and Tips.
*
* @param array $config
* The configuration data used for authentication and getting the acccount ID.
* @param string $email The email address of this user. If you want to get the user information
* of the user making the Merchant API request, you can also use "me" instead
* of an email address.
*
* @return void
*/
public static function updateEmailPreferencesSample($config, $email): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$emailPreferencesServiceClient = new EmailPreferencesServiceClient($options);
// Creates EmailPreferences name to identify the EmailPreferences.
// The name has the format: accounts/{account}/users/{user}/emailPreferences
$name = "accounts/" . $config['accountId'] . "/users/" . $email . "/emailPreferences";
// Create a EmailPreferences with the updated fields.
$emailPreferences = (new EmailPreferences())
->setName($name)
->setNewsAndTips(OptInState::OPTED_OUT);
$fieldMask = (new FieldMask())
->setPaths(['news_and_tips']);
try {
$request = (new UpdateEmailPreferencesRequest())
->setEmailPreferences($emailPreferences)
->setUpdateMask($fieldMask);
print "Sending Update EmailPreferences request\n";
$response = $emailPreferencesServiceClient->updateEmailPreferences($request);
print "Updated EmailPreferences Name below\n";
print $response->getName() . "\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
// The email address of this user. If you want to get the user information
// Of the user making the Merchant API request, you can also use "me" instead
// Of an email address.
// $email = "testUser@gmail.com";
$email = "me";
self::updateEmailPreferencesSample($config, $email);
}
}
// Run the script
$sample = new UpdateEmailPreferences();
$sample->callSample();
پایتون
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.protobuf import field_mask_pb2
from google.shopping.merchant_accounts_v1 import EmailPreferences
from google.shopping.merchant_accounts_v1 import EmailPreferencesServiceClient
from google.shopping.merchant_accounts_v1 import UpdateEmailPreferencesRequest
FieldMask = field_mask_pb2.FieldMask
_ACCOUNT = configuration.Configuration().read_merchant_info()
def update_email_preferences(email_address):
"""Updates a EmailPreferences to OPT_IN to News and Tips."""
# Gets OAuth Credentials.
credentials = generate_user_credentials.main()
# Creates a client.
client = EmailPreferencesServiceClient(credentials=credentials)
# Creates EmailPreferences name to identify EmailPreferences.
name = (
"accounts/" + _ACCOUNT + "/users/" + email_address + "/emailPreferences"
)
# Create a EmailPreferences with the updated fields.
email_preferences = EmailPreferences(
name=name, news_and_tips=EmailPreferences.OptInState.OPTED_IN
)
# Create field mask
field_mask = FieldMask(paths=["news_and_tips"])
# Creates the request.
request = UpdateEmailPreferencesRequest(
email_preferences=email_preferences, update_mask=field_mask
)
# Makes the request and catches and prints any error messages.
try:
response = client.update_email_preferences(request=request)
print("Updated EmailPreferences Name below")
print(response.name)
except RuntimeError as e:
print(e)
if __name__ == "__main__":
# 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.
# email = "testUser@gmail.com"
email = "me"
update_email_preferences(email)
حلقه
curl --location --request PATCH \
'https://merchantapi.googleapis.com/accounts/v1/accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences?update_mask=news_and_tips' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <API_TOKEN>' \
--data '{
"name": "accounts/{ACCOUNT_ID}/users/{EMAIL_ADDRESS}/emailPreferences",
"news_and_tips": "OPTED_IN"
}'