إدارة مشاريع 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.

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