إدارة مشاريع 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
  • اختَر استراتيجية الانتقال المناسبة لمشروع على السحابة الإلكترونية في Google Cloud ونفِّذها إذا كنت تنتقل من Content API for Shopping إلى Merchant API.

المتطلبات الأساسية

قبل إدارة مشاريع 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 في الوقت نفسه، يمكنك تسجيل المشروع الجديد قبل إيقاف المشروع القديم.

الخطوة 1: إنشاء مشروعك الجديد على Google Cloud وضبطه

  1. أنشِئ مشروعًا جديدًا في وحدة تحكّم Google Cloud. للحصول على تعليمات مفصّلة، يُرجى الاطّلاع على إنشاء مشروع على Google Cloud.
  2. فعِّل Merchant API‏ (merchantapi.googleapis.com) في المشروع الجديد. يُرجى الاطّلاع على قسم تفعيل Merchant API من إنشاء مشروع على Google Cloud.
  3. أنشئ بيانات اعتماد المصادقة (حساب خدمة أو معرّف عميل OAuth 2.0) في مشروع Google Cloud الجديد.
  4. أضِف عنوان البريد الإلكتروني الذي يتم استخدامه للمصادقة (مثل عنوان البريد الإلكتروني الجديد لحساب الخدمة) كمستخدم لديه دور ADMIN في حسابك الأساسي على Merchant Center.

الخطوة 2: تسجيل مشروع Google Cloud الجديد

يمكنك إثبات ملكية حسابك باستخدام بيانات الاعتماد من مشروعك الجديد على Google Cloud واستدعاء طريقة accounts.developerRegistration.registerGcp لربط المشروع الجديد بحسابك الأساسي على Merchant Center. للحصول على تعليمات مفصّلة، راجِع قسم إجراء مكالمة التسجيل من مقالة التسجيل كمطوِّر.

الخطوة 3: التحقّق من مشاريعك المسجَّلة على 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"
  ]
}

يمكنك أيضًا التحقّق من حساب Merchant Center الذي تم تسجيل مشروع Google Cloud الذي يتم استدعاؤه به من خلال استدعاء طريقة accounts.developerRegistration.getAccountForGcpRegistration:

GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN

غيِّر القيم في السلسلة على الشكل التالي:

  • ACCESS_TOKEN: رمز التفويض المميز الذي تم إنشاؤه باستخدام بيانات الاعتماد من مشروع Google Cloud الذي تريد التحقّق منه

الخطوة 4: تبديل الزيارات وإلغاء تسجيل مشروع 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. أرسِل طلبًا إلى 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، على سبيل المثال، إذا تم ضبط مفاتيح واجهة برمجة التطبيقات الأصلية مباشرةً من خلال سير عمل المصادقة القديم في Merchant Center أو إذا غادر مالك المشروع الأصلي مؤسستك.

بناءً على ما إذا كنت تريد الاحتفاظ بمشروعك الحالي أو استخدام مشروع جديد لـ Merchant API مع الاحتفاظ بـ Content API for Shopping في مشروعك القديم، حدِّد أحد الخيارَين التاليَين.

اختيار استراتيجية مشروع نقل البيانات

السيناريو هل يجب الحصول على إذن وصول إداري إلى المشروع القديم؟ واجهات برمجة التطبيقات التي يجب تفعيلها هل يجب استخدام إضافة Content API for Shopping في المشروع الجديد؟
الخيار 1: الاحتفاظ بمشروعك الحالي نعم (أو الاسترداد من خلال فريق دعم Google Cloud) تفعيل Merchant API في المشروع الحالي (تم تفعيل Content API for Shopping) لا (تظل الإضافة الحالية على رقم تعريف المشروع القديم صالحة)
الخيار 2: الاحتفاظ بالمشروع القديم لواجهة Content API for Shopping واستخدام مشروع جديد لواجهة Merchant API لا فعِّل Merchant API في المشروع الجديد (مع إبقاء Content API for Shopping مفعّلة في المشروع القديم). لا (يحتفظ المشروع القديم بإضافته، ويطلب المشروع الجديد Merchant API فقط)

الخيار 1: الاحتفاظ بمشروعك الحالي على 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 الموافَق عليها في العمل بدون تغييرات.

الخيار 2: استخدام مشروع 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. نقل أعباء العمل تدريجيًا: يمكنك نقل طلبات البيانات من واجهة برمجة التطبيقات من مشروع Content API for Shopping القديم إلى مشروع Merchant API الجديد تدريجيًا، قبل تاريخ الإيقاف النهائي المحدّد لـ Content API for Shopping (أو قبل انتهاء صلاحية التمديد الذي تمت الموافقة عليه)، وإيقاف المشروع القديم بعد اكتمال عملية النقل.

حالة خاصة: فقدان إمكانية الوصول إلى مشروعك القديم على Google Cloud قبل إكمال عملية نقل البيانات

بما أنّ Content API for Shopping قد تم إيقافها نهائيًا، لم تعُد مدرَجة في مكتبة Google Cloud API، ولا يمكن تفعيلها في مشاريع على السحابة الإلكترونية التي تم إنشاؤها حديثًا. نتيجةً لذلك، لا يمكنك نقل أحمال عمل Content API for Shopping الحالية إلى مشروع جديد على Google Cloud بنفسك.

إذا لم يعُد بإمكانك إجراء طلبات Content API for Shopping من مشروعك القديم (على سبيل المثال، بسبب إبطال بيانات الاعتماد أو عدم إمكانية الوصول إلى المشروع):

  1. التواصل مع فريق دعم Google Cloud لاستعادة إمكانية الوصول إلى مشروعك الحالي على Google Cloud (الخيار 1)، أو
  2. اتّبِع الخيار 2 لإنشاء مشروع جديد على Google Cloud وتسجيله ونقل سير العمل المتأثر مباشرةً إلى Merchant API. إذا واجهت مشكلة خطيرة تمنع عملية نقل البيانات، يُرجى التواصل مع فريق دعم Merchant API.

الخطوات التالية