مدیریت و انتقال پروژه‌های 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. میانای برنامه‌سازی کاربردی Merchant (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: کد مجوز برای برقراری تماس 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 قدیمی

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

  1. بااستفاده از اطلاعات کاربری پروژه Google Cloud که به OLD_ACCOUNT_ID دسترسی دارد، اصالت‌سنجی کنید و unregisterGcp را در accounts/OLD_ACCOUNT_ID/developerRegistration فراخوانی کنید.
  2. تأیید کنید که هویت اصالت‌سنجی‌شده نقش ADMIN را در NEW_ACCOUNT_ID دارد و NEW_ACCOUNT_ID وب‌سایت درستی‌سنجی‌شده‌ای دارد.
  3. 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)
  1. فعال کردن Merchant API: merchantapi.googleapis.com را در کتابخانه Google Cloud API یا با فرمان gcloud فعال کنید. برای دستورالعمل‌های گام‌به‌گام، به پیکربندی اصالت‌سنجی میانای برنامه‌سازی کاربردی از Merchant Center مراجعه کنید.
  2. ثبت پروژه 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 جداگانه و اختصاصی بسازید، این گزینه را انتخاب کنید:

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

مورد خاص: ازدست دادن دسترسی به پروژه 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 تماس بگیرید.

مراحل بعدی