مدیریت و انتقال پروژه‌های Google Cloud

برای استفاده از 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 جدیدتان را ایجاد و پیکربندی کنید

  1. پروژه جدیدی در کنسول Google Cloud ایجاد کنید. برای دستورالعمل‌های دقیق، ایجاد پروژه Google Cloud را ببینید.
  2. میانای برنامه‌سازی کاربردی بازرگان (merchantapi.googleapis.com) را در پروژه جدید فعال کنید. بخش فعال کردن Merchant API را در ایجاد پروژه Google Cloud ببینید.
  3. اطلاعات اعتباری اصالت‌سنجی (حساب سرویس یا شناسه کارخواه OAuth 2.0) را در پروژه جدید Google Cloud ایجاد کنید.
  4. نشانی ایمیل اصالت‌سنجی (مانند ایمیل حساب خدمات جدید) را به‌عنوان کاربر با نقش 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: کد مجوز برای برقراری تماس میانای برنامه‌سازی کاربردی

پاسخ، منبع را با 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 قدیمی

  1. پیکربندی برنامه‌تان را به‌روز کنید تا از اطلاعات اعتباری پروژه جدید Google Cloud شما استفاده کند. چون هر دو پروژه ثبت شده‌اند، حجم‌های کاری شما بدون وقفه منتقل می‌شوند.
  2. وقتی همه ترافیک از پروژه جدید استفاده کرد، می‌توانید به‌طور اختیاری پیوند پروژه قدیمی را با اصالت‌سنجی با اعتبارنامه پروژه 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 برای انجام «فراخوانی میانای برنامه‌سازی کاربردی»

جاوا

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 برای ثبت پروژه، به ملاحظات مهم مراجعه کنید:

  1. بااستفاده از اعتبارنامه‌های پروژه Google Cloud که به OLD_ACCOUNT_ID دسترسی دارد، اصالت‌سنجی کنید و unregisterGcp را در accounts/OLD_ACCOUNT_ID/developerRegistration فراخوانی کنید.
  2. تأیید کنید که هویت اصیل نقش ADMIN را در NEW_ACCOUNT_ID دارد و NEW_ACCOUNT_ID وب‌سایت درستی‌سنجی‌شده دارد.
  3. بااستفاده از اطلاعات اعتباری از همان پروژه Google Cloud، registerGcp در accounts/NEW_ACCOUNT_ID/developerRegistration فراخوانی کنید. اگر NEW_ACCOUNT_ID هنوز کاربری با نقش API_DEVELOPER ندارد، ایمیل کاربر معتبری را در فیلد درخواست developerEmail ارسال کنید. ایمیل‌های حساب سرویس که به .gserviceaccount.com ختم می‌شوند نمی‌توانند به‌عنوان developerEmail استفاده شوند.

انتقال پروژه‌های Google Cloud هنگام انتقال از Content API for Shopping

هنگام انتقال از Content API for Shopping به Merchant API، ممکن است با محدودیت‌های دسترسی در پروژه قدیمی Google Cloud مواجه شوید—برای مثال، اگر کلیدهای میانای برنامه‌سازی کاربردی اصلی شما مستقیماً ازطریق گردش کار اصالت‌سنجی قدیمی Merchant Center پیکربندی شده باشند یا اگر مالک اصلی پروژه سازمان شما را ترک کرده باشد.

بسته به اینکه می‌خواهید پروژه موجودتان را حفظ کنید یا از پروژه جدیدی برای Merchant API استفاده کنید و درعین‌حال Content API for Shopping را در پروژه قدیمی‌تان نگه دارید، یکی از دو گزینه زیر را انتخاب کنید.

انتخاب استراتژی پروژه انتقال

سناریو دسترسی سرپرست به پروژه قدیمی لازم است؟ میاناهای برنامه‌سازی کاربردی برای فعال کردن آیا افزونه Content API for Shopping در پروژه جدید لازم است؟
گزینه ۱: حفظ پروژه موجود بله (یا بازیابی ازطریق «پشتیبانی Google Cloud») «میانای برنامه‌سازی کاربردی بازرگان» را در پروژه موجود فعال کنید («میانای برنامه‌سازی کاربردی محتوا برای Shopping» ازقبل فعال است) نه (افزونه موجود در شناسه پروژه قدیمی معتبر باقی می‌ماند)
گزینه ۲: پروژه قدیمی را برای «میانای برنامه‌سازی کاربردی محتوا برای Shopping» نگه دارید و از پروژه جدیدی برای «میانای برنامه‌سازی کاربردی بازرگان» استفاده کنید نه «میانای برنامه‌سازی کاربردی بازرگان» را در پروژه جدید فعال کنید («میانای برنامه‌سازی کاربردی محتوا برای Shopping» را در پروژه قدیمی فعال نگه دارید) نه (پروژه قدیمی افزونه‌اش را حفظ می‌کند؛ پروژه جدید فقط Merchant API را فراخوانی می‌کند)

گزینه ۱: حفظ پروژه Google Cloud موجود

اگر می‌خواهید از پروژه Google Cloud فعلی‌تان هم برای «میانای برنامه‌سازی کاربردی محتوا برای خرید» و هم برای Merchant API استفاده کنید، این گزینه را انتخاب کنید.

قبل‌از شروع، دسترسی به پروژه موجودتان را به‌تأیید برسانید یا بازیابی کنید. به سیستم کنسول Google Cloud وارد شوید و تأیید کنید که حساب شما هریک از نقش‌های زیر را در پروژه موجودتان دارد:

  • مالک (roles/owner)،
  • ویرایشگر (roles/editor)
  • سرپرست استفاده از سرویس (roles/serviceusage.serviceUsageAdmin)
  1. فعال کردن Merchant API: merchantapi.googleapis.com را در Google Cloud API Library یا با فرمان gcloud فعال کنید. برای دستورالعمل‌های گام‌به‌گام، به پیکربندی اصالت‌سنجی API از Merchant Center مراجعه کنید.
  2. ثبت پروژه Google Cloud در Merchant Center: مراحل راهنمای ثبت‌نام به‌عنوان توسعه‌دهنده را دنبال کنید تا درخواست‌های پروژه موجودتان را مجاز کنید و روش registerGcp را فراخوانی کنید تا پروژه Google Cloud موجودتان را به حساب Merchant Center اصلی‌تان پیوند دهید. کلیدهای حساب خدمات موجود شما و افزونه «میانای برنامه‌سازی کاربردی محتوا برای Shopping» تأییدشده بدون تغییر به کار خود ادامه می‌دهند.

گزینه ۲: استفاده از پروژه قدیمی Google Cloud برای Content API for Shopping و پروژه جدید برای Merchant API

اگر ادغام قدیمی Content API for Shopping شما ازقبل با اطلاعات کاربری معتبر و افزونه تأییدشده در پروژه قدیمی Google Cloud شما اجرا می‌شود و می‌خواهید ادغام جدید Merchant API خود را در پروژه Google Cloud جداگانه و اختصاصی بسازید، این گزینه را انتخاب کنید:

  1. یکپارچه‌سازی «میانای برنامه‌سازی کاربردی Shopping» را در پروژه قدیمی نگه دارید: گردش‌های کار و اطلاعات اعتباری «میانای برنامه‌سازی کاربردی Shopping» موجود را در پروژه قدیمی Google Cloud اجرا کنید. اگر درخواست تمدید شما برای شناسه پروژه قدیمی تأیید شده باشد، یکپارچه‌سازی فعلی شما در «میانای برنامه‌سازی کاربردی Shopping» تا مهلت تمدیدشده به کار خود ادامه می‌دهد.
  2. پروژه Google Cloud جدیدی منحصراً برای Merchant API ایجاد کنید: پروژه Google Cloud جدیدی ایجاد کنید، merchantapi.googleapis.com را فعال کنید، و اطلاعات اعتباری (حساب سرویس یا شناسه کلاینت OAuth 2.0) برای حجم‌های کاری جدید Merchant API ایجاد کنید.
  3. پروژه جدید را ثبت کنید: مراحل ثبت به‌عنوان توسعه‌دهنده را دنبال کنید تا درخواست‌های پروژه جدیدتان را مجاز کنید و روش registerGcp را با ایمیل تماس توسعه‌دهنده معتبر فراخوانی کنید. از ایمیل‌های حساب سرویس (با پسوند .gserviceaccount.com) نمی‌توان به‌عنوان developerEmail استفاده کرد.
  4. انتقال تدریجی حجم‌های کاری: تماس‌های «میانای برنامه‌سازی کاربردی» را از پروژه قدیمی «میانای برنامه‌سازی کاربردی محتوا برای Shopping» به پروژه جدید «میانای برنامه‌سازی کاربردی فروشنده» به‌تدریج منتقل کنید، پیش‌از تاریخ برچیده شدن برنامه‌ریزی‌شده «میانای برنامه‌سازی کاربردی محتوا برای Shopping» (یا پیش‌از منقضی شدن مهلت تمدید تأییدشده)، و پس‌از تکمیل انتقال، پروژه قدیمی را بازنشسته کنید.

مورد خاص: ازدست دادن دسترسی به پروژه Google Cloud قدیمی قبل‌از تکمیل انتقال

چون Content API for Shopping منسوخ شده است، دیگر در «کتابخانه Google Cloud API» فهرست نمی‌شود و نمی‌توان آن را در پروژه‌های Google Cloud تازه ایجادشده فعال کرد. درنتیجه، نمی‌توانید بار کاری Content API for Shopping موجود را به‌تنهایی به پروژه Google Cloud جدیدی منتقل کنید.

اگر دیگر نمی‌توانید از پروژه قدیمی‌تان تماس‌های Content API for Shopping برقرار کنید (برای مثال، به‌دلیل لغو اعتبارنامه‌ها یا دسترسی غیرقابل‌بازیابی به پروژه):

  1. برای بازیابی دسترسی به پروژه Google Cloud موجود خود، با پشتیبانی Google Cloud تماس بگیرید (گزینه ۱)، یا
  2. برای ایجاد و ثبت پروژه جدید Google Cloud و انتقال مستقیم گردش‌های کار تحت‌تأثیر به Merchant API، گزینه ۲ را دنبال کنید. اگر با یک مسدودکننده حیاتی انتقال مواجه شدید، با پشتیبانی Merchant API تماس بگیرید.

مراحل بعدی