برای استفاده از Merchant API، باید پروژه Google Cloud خود را ازطریق ثبتنام توسعهدهنده به حساب Merchant Center اصلیتان پیوند دهید. درطول چرخه حیات ادغام، ممکن است لازم باشد شناسه پروژه Google Cloud مرتبط با حساب Merchant Center خود را تغییر دهید، چندین پروژه را در محیطهای مختلف مدیریت کنید، یا هنگام انتقال از Content API for Shopping، پروژهها را منتقل کنید.
این راهنما نحوه انجام کارهای زیر را توضیح میدهد:
- شناسه پروژه Google Cloud را برای ادغام Merchant API موجود بدون زمان ازکارافتادگی تغییر دهید یا بچرخانید.
- لغو ثبت پروژه Google Cloud از یک حساب Merchant Center و ثبت آن با حساب Merchant Center دیگر.
- اگر از Content API for Shopping به Merchant API مهاجرت میکنید، استراتژی انتقال پروژه Google Cloud مناسب را انتخاب و اجرا کنید.
پیشنیازها
قبلاز مدیریت یا انتقال پروژههای Google Cloud، مطمئن شوید که پیشنیازهای ثبتنام توسعهدهنده را دارید. برای جزئیات بیشتر، بخش پیشنیازها در راهنمای ثبتنام بهعنوان توسعهدهنده را ببینید.
قوانین و محدودیتهای کلیدی
هنگام برنامهریزی برای تغییرات در پروژههای Google Cloud، قوانین زیر را درنظر داشته باشید:
- ثبت پروژه یکبهچند: یک حساب Merchant Center اصلی میتواند چندین پروژه Google Cloud را بهطور همزمان ثبت کند. بااینحال، هر پروژه Google Cloud را در هر زمان فقط میتوان برای یک حساب Merchant Center اصلی ثبت کرد. تلاش برای ثبت پروژهای که قبلاً به حساب Merchant Center دیگری پیوند شده است،
خطای
ALREADY_EXISTS(409 Conflict) با دلیلDUPLICATE_PROJECT_REGISTRATIONرا برمیگرداند. - حریم خصوصی مالکیت پروژه: بهدلایل امنیتی و حریم خصوصی، پشتیبانی Google Shopping و Merchant API نمیتواند نشانیهای ایمیل مالک یا سرپرست پروژه Google Cloud را فاش کند. اگر دسترسی به پروژهای را ازدست دادید، با پشتیبانی Google Cloud تماس بگیرید.
- تمدیدهای توقف Content API for Shopping مختص پروژه است: اگر تأییدیه دسترسی تمدیدشده برای Content API for Shopping دریافت کردهاید، آن تمدید فقط برای شناسه پروژه Google Cloud خاصی که در درخواستتان ارسال شده است اعمال میشود. افزونهها بهطور خودکار به پروژههای جدید Google Cloud منتقل نمیشوند.
تغییر دادن شناسه پروژه Google Cloud برای حساب Merchant API
اگر ازقبل از Merchant API استفاده میکنید و لازم است ادغام خود را به پروژه Google Cloud جدیدی منتقل کنید (مثلاً بهدلیل بازسازی سازمانی، خطمشیهای چرخش اعتبارنامهها، یا ازدست دادن دسترسی سرپرستی به پروژه قدیمیتر)، میتوانید پروژهها را بدون وقفه انتقال دهید. چون حساب Merchant Center از چند پروژه Google Cloud ثبتشده بهطور همزمان پشتیبانی میکند، میتوانید پروژه جدید را قبلاز بازنشسته کردن پروژه قدیمی ثبت کنید.
مرحله ۱: ایجاد و پیکربندی پروژه Google Cloud جدید
- پروژه جدیدی در کنسول Google Cloud ایجاد کنید. برای دستورالعملهای دقیق، ایجاد پروژه Google Cloud را ببینید.
- میانای برنامهسازی کاربردی Merchant (
merchantapi.googleapis.com) را در پروژه جدید فعال کنید. بخش فعال کردن Merchant API را در ایجاد پروژه Google Cloud ببینید. - اعتبارنامههای اصالتسنجی (حساب سرویس یا شناسه کارخواه OAuth 2.0) را در پروژه Google Cloud جدید ایجاد کنید.
- نشانی ایمیل اصالتسنجی (مانند ایمیل حساب خدمات جدید) را بهعنوان کاربر با نقش
ADMINدر حساب Merchant Center اصلی خود اضافه کنید.
مرحله ۲: ثبت پروژه Google Cloud جدید
بااستفاده از اطلاعات اعتباری پروژه Google Cloud جدید خود اصالتسنجی کنید
و روش
accounts.developerRegistration.registerGcp
را فراخوانی کنید تا پروژه جدید را به حساب Merchant Center اصلیتان پیوند دهید. برای
دستورالعملهای دقیق، به
بخش برقراری تماس ثبتنام
در
ثبتنام بهعنوان توسعهدهنده مراجعه کنید.
مرحله ۳: درستیسنجی کردن پروژههای Google Cloud ثبتشده
برای تأیید اینکه پروژههای Google Cloud جدید و موجود شما به حساب Merchant Center شما پیوند داده شدهاند، روش accounts.developerRegistration.getDeveloperRegistration را فراخوانی کنید:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
موارد زیر را جایگزین کنید:
ACCOUNT_ID: شناسه Merchant Center شما-
ACCESS_TOKEN: کد مجوز برای برقراری تماس API
پاسخ، منبع
DeveloperRegistration
را با شمارههای عددی پروژه Google Cloud همه پروژههای پیوندشده در فیلد gcpIds برمیگرداند:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
همچنین میتوانید با فراخوانی روش
accounts.developerRegistration.getAccountForGcpRegistration
درستیسنجی کنید که پروژه Google Cloud فراخواننده در کدام حساب Merchant Center ثبت شده است:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
موارد زیر را جایگزین کنید:
-
ACCESS_TOKEN: کد مجازسازی تولیدشده بااستفاده از اعتبارنامههای پروژه Google Cloud که میخواهید بررسی کنید
مرحله ۴: تغییر ترافیک و لغو ثبت پروژه Google Cloud قدیمی
- پیکربندی برنامهتان را بهروز کنید تا از اطلاعات اعتباری پروژه جدید Google Cloud شما استفاده کند. چون هر دو پروژه ثبت شدهاند، حجمهای کاریتان بدون وقفه منتقل میشوند.
- وقتی همه ترافیک از پروژه جدید استفاده کرد، میتوانید بهطور اختیاری پیوند پروژه قدیمی را با اصالتسنجی کردن با اعتبارنامه پروژه Google Cloud قدیمی و فراخوانی روش
accounts.developerRegistration.unregisterGcpبردارید:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
موارد زیر را جایگزین کنید:
ACCOUNT_ID: شناسه Merchant Center شماOLD_PROJECT_ACCESS_TOKEN: کد مجازسازی از پروژه Google Cloud قدیمی برای برقراری تماس API
جاوا
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationName;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceClient;
import com.google.shopping.merchant.accounts.v1.DeveloperRegistrationServiceSettings;
import com.google.shopping.merchant.accounts.v1.UnregisterGcpRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/**
* This class demonstrates how to unregister the GCP project currently used to call the Merchant API
* for a specific account.
*/
public class UnregisterGcpSample {
public static void unregisterGcp(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
DeveloperRegistrationServiceSettings developerRegistrationServiceSettings =
DeveloperRegistrationServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Creates DeveloperRegistration name to identify the DeveloperRegistration.
// The name has the format: accounts/{account}/developerRegistration
String name =
DeveloperRegistrationName.newBuilder()
.setAccount(config.getAccountId().toString())
.build()
.toString();
// Calls the API and propagates any network failures/errors.
try (DeveloperRegistrationServiceClient developerRegistrationServiceClient =
DeveloperRegistrationServiceClient.create(developerRegistrationServiceSettings)) {
// Creates a request to unregister the GCP project.
UnregisterGcpRequest request = UnregisterGcpRequest.newBuilder().setName(name).build();
System.out.println("Sending UnregisterGcp request for: " + name);
developerRegistrationServiceClient.unregisterGcp(request);
System.out.println("Unregister GCP successful.");
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
unregisterGcp(config);
}
}
cURL
curl -X POST \
"https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN"
واگذاری مجدد پروژه Google Cloud ثبتشده به حساب Merchant Center دیگر
چون پروژه Google Cloud را در هر زمان فقط میتوان در یک حساب Merchant Center اصلی ثبت کرد، این مراحل را دنبال کنید تا پروژه موجود را از یک حساب Merchant Center (OLD_ACCOUNT_ID) به حساب دیگری (NEW_ACCOUNT_ID) اختصاص دهید. برای دریافت دستورالعملهای مربوط به انتخاب حساب Merchant Center برای ثبت پروژه، به ملاحظات مهم مراجعه کنید:
- بااستفاده از اطلاعات کاربری پروژه Google Cloud که به
OLD_ACCOUNT_IDدسترسی دارد، اصالتسنجی کنید وunregisterGcpرا درaccounts/OLD_ACCOUNT_ID/developerRegistrationفراخوانی کنید. - تأیید کنید که هویت اصالتسنجیشده نقش
ADMINرا درNEW_ACCOUNT_IDدارد وNEW_ACCOUNT_IDوبسایت درستیسنجیشدهای دارد. registerGcpرا درaccounts/NEW_ACCOUNT_ID/developerRegistrationبااستفاده از اطلاعات کاربری همان پروژه Google Cloud فراخوانی کنید. اگرNEW_ACCOUNT_IDهنوز کاربری با نقشAPI_DEVELOPERندارد، ایمیل کاربر معتبری را در فیلد درخواستdeveloperEmailارسال کنید. ایمیلهای حساب سرویس که به.gserviceaccount.comختم میشوند نمیتوانند بهعنوانdeveloperEmailاستفاده شوند.
انتقال پروژههای Google Cloud هنگام انتقال از Content API for Shopping
هنگام انتقال از Content API for Shopping به Merchant API، ممکن است با محدودیتهای دسترسی در پروژه قدیمی Google Cloud خود مواجه شوید—برای مثال، اگر کلیدهای API اصلی شما مستقیماً ازطریق گردش کار اصالتسنجی Merchant Center قدیمی پیکربندی شده باشند یا اگر مالک اصلی پروژه سازمان شما را ترک کرده باشد.
بسته به اینکه میخواهید پروژه موجودتان را حفظ کنید یا از پروژه جدیدی برای Merchant API استفاده کنید و درعینحال Content API for Shopping را در پروژه قدیمیتان نگه دارید، یکی از دو گزینه زیر را انتخاب کنید.
انتخاب استراتژی پروژه انتقال
| سناریو | دسترسی سرپرستی به پروژه قدیمی لازم است؟ | میاناهای برنامهسازی کاربردی برای فعال کردن | آیا افزونه Content API for Shopping در پروژه جدید لازم است؟ |
|---|---|---|---|
| گزینه ۱: حفظ پروژه موجود | بله (یا ازطریق «پشتیبانی Google Cloud» بازیابی کنید) | فعال کردن Merchant API در پروژه موجود (Content API for Shopping ازقبل فعال است) | نه (افزونه موجود در شناسه پروژه قدیمی معتبر باقی میماند) |
| گزینه ۲: پروژه قدیمی را برای Content API for Shopping نگه دارید و از پروژه جدیدی برای Merchant API استفاده کنید | نه | «میانای برنامهسازی کاربردی بازرگان» را در پروژه جدید فعال کنید (Content API ویژه Shopping را در پروژه قدیمی فعال نگه دارید) | نه (پروژه قدیمی افزونهاش را حفظ میکند؛ پروژه جدید فقط Merchant API را فراخوانی میکند) |
گزینه ۱: حفظ پروژه Google Cloud موجود
اگر میخواهید از پروژه Google Cloud فعلیتان هم برای Content API for Shopping و هم Merchant API استفاده کنید، این گزینه را انتخاب کنید.
قبلاز شروع، دسترسی به پروژه موجودتان را درستیسنجی یا بازیابی کنید. به سیستم کنسول Google Cloud وارد شوید و تأیید کنید که حسابتان هرکدام از نقشهای زیر را در پروژه موجودتان دارد:
- مالک (
roles/owner)، - ویرایشگر (
roles/editor) - سرپرست استفاده از سرویس (
roles/serviceusage.serviceUsageAdmin)
- فعال کردن Merchant API:
merchantapi.googleapis.comرا در کتابخانه Google Cloud API یا با فرمانgcloudفعال کنید. برای دستورالعملهای گامبهگام، به پیکربندی اصالتسنجی میانای برنامهسازی کاربردی از Merchant Center مراجعه کنید. - ثبت پروژه Google Cloud در Merchant Center:
مراحل راهنمای
ثبتنام بهعنوان توسعهدهنده
را دنبال کنید تا درخواستهای پروژه موجودتان را مجاز کنید و روش
registerGcpرا فراخوانی کنید تا پروژه Google Cloud موجودتان را به حساب Merchant Center اصلیتان پیوند دهید. کلیدهای حساب سرویس موجود شما و افزونه تأییدشده Content API for Shopping بدون تغییر به کار خود ادامه میدهند.
گزینه ۲: استفاده از پروژه قدیمی Google Cloud برای Content API for Shopping و پروژه جدید برای Merchant API
اگر ادغام قدیمی Content API for Shopping شما ازقبل با اطلاعات کاربری معتبر و افزونه تأییدشده در پروژه قدیمی Google Cloud شما اجرا میشود و میخواهید ادغام Merchant API جدیدتان را در پروژه Google Cloud جداگانه و اختصاصی بسازید، این گزینه را انتخاب کنید:
- ادغام Content API for Shopping را در پروژه قدیمی نگه دارید: اجازه دهید گردشهای کاری و اطلاعات کاربری Content API for Shopping موجودتان در پروژه قدیمی Google Cloud اجرا شوند. اگر درخواست تمدید شما برای شناسه پروژه قدیمی تأیید شده باشد، ادغام فعلی Content API for Shopping شما تا پایان مهلت تمدیدشده به کار خود ادامه میدهد.
- پروژه Google Cloud جدیدی منحصراً برای Merchant API ایجاد کنید: پروژه Google Cloud جدیدی ایجاد کنید،
merchantapi.googleapis.comرا فعال کنید، و اطلاعات اعتباری (حساب سرویس یا شناسه کارخواه OAuth 2.0) برای حجمهای کاری Merchant API جدیدتان ایجاد کنید. - ثبت پروژه جدید: مراحل موجود در
ثبتنام بهعنوان توسعهدهنده را دنبال کنید تا
درخواستهای پروژه جدیدتان را مجاز کنید و
روش
registerGcpرا با ایمیل تماس توسعهدهنده معتبر فراخوانی کنید. از ایمیلهای حساب سرویس (که به.gserviceaccount.comختم میشوند) نمیتوان بهعنوانdeveloperEmailاستفاده کرد. - انتقال تدریجی حجمهای کاری: فراخوانیهای میانای برنامهسازی کاربردی را بهتدریج از پروژه قدیمی «میانای برنامهسازی کاربردی محتوا برای خرید» به پروژه جدید Merchant API منتقل کنید، قبلاز تاریخ برنامهریزیشده برای توقف «میانای برنامهسازی کاربردی محتوا برای خرید» (یا قبلاز انقضای تمدید تأییدشده شما)، و پساز تکمیل انتقال، پروژه قدیمی را بازنشسته کنید.
مورد خاص: ازدست دادن دسترسی به پروژه Google Cloud قدیمی قبلاز تکمیل انتقال
چون Content API for Shopping منسوخ شده است، دیگر در «کتابخانه Google Cloud API» فهرست نمیشود و نمیتوان آن را در پروژههای Google Cloud تازه ایجادشده فعال کرد. درنتیجه، نمیتوانید حجمهای کاری موجود Content API for Shopping را بهتنهایی به پروژه Google Cloud جدیدی منتقل کنید.
اگر دیگر نمیتوانید از پروژه قدیمیتان تماسهای Content API for Shopping برقرار کنید (برای مثال، بهدلیل لغو اعتبارنامهها یا دسترسی غیرقابلبازیابی به پروژه):
- برای بازیابی دسترسی به پروژه Google Cloud موجودتان، با پشتیبانی Google Cloud تماس بگیرید (گزینه ۱)، یا
- گزینه ۲ را دنبال کنید تا پروژه Google Cloud جدیدی ایجاد و ثبت کنید و گردشهای کاری تحتتأثیرقرارگرفته را مستقیماً به Merchant API منتقل کنید. اگر با مانع مهمی در انتقال مواجه شدید، با پشتیبانی Merchant API تماس بگیرید.
مراحل بعدی
- در ثبتنام بهعنوان توسعهدهنده و پرسشگان ثبتنام توسعهدهنده درباره الزامات ثبتنام توسعهدهنده بیشتر بدانید.
- نحوه رفتار اطلاعات کاربری قدیمی را در پیکربندی اصالتسنجی API از Merchant Center مرور کنید.
- با شروع انتقال، عرضه زیرمیانای برنامهسازی کاربردی را برنامهریزی کنید.
- جزئیات مربوط به دسترسی تمدیدشده به Content API for Shopping را در درخواست تمدید انتقال ببینید.