จัดการและเปลี่ยนโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google

หากต้องการใช้ Merchant API คุณต้องลิงก์โปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google กับบัญชี Merchant Center หลักผ่านการลงทะเบียนเป็นนักพัฒนาแอป ตลอดวงจรการผสานรวม คุณอาจต้องเปลี่ยนรหัสโปรเจ็กต์ Google Cloud ที่เชื่อมโยงกับบัญชี Merchant Center, จัดการโปรเจ็กต์หลายรายการในสภาพแวดล้อมต่างๆ หรือเปลี่ยนโปรเจ็กต์เมื่อย้ายข้อมูลจาก Content API for Shopping

คู่มือนี้จะอธิบายวิธีดำเนินการต่อไปนี้

  • เปลี่ยนหรือหมุนเวียนรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google สำหรับการผสานรวม Merchant API ที่มีอยู่โดยไม่มีการหยุดทำงาน
  • ยกเลิกการลงทะเบียนโปรเจ็กต์ Google Cloud จากบัญชี Merchant Center บัญชีหนึ่ง แล้วลงทะเบียนกับบัญชี Merchant Center บัญชีอื่น
  • เลือกและใช้กลยุทธ์การเปลี่ยนโปรเจ็กต์ Google Cloud ที่เหมาะสมหากคุณกำลังย้ายข้อมูลจาก Content API for Shopping ไปยัง Merchant API

ข้อกำหนดเบื้องต้น

ก่อนที่จะจัดการหรือเปลี่ยนโปรเจ็กต์ Google Cloud โปรดตรวจสอบว่าคุณมีคุณสมบัติตรงตามข้อกำหนดเบื้องต้นสำหรับการลงทะเบียนเป็นนักพัฒนาแอป ดูรายละเอียดเพิ่มเติมได้ใน ส่วน ข้อกำหนดเบื้องต้น ของคู่มือลงทะเบียนเป็นนักพัฒนาแอป

กฎและข้อจำกัดที่สำคัญ

เมื่อวางแผนที่จะเปลี่ยนแปลงโปรเจ็กต์ Google Cloud โปรดคำนึงถึงกฎต่อไปนี้

  • การลงทะเบียนโปรเจ็กต์แบบ 1 ต่อหลายรายการ: บัญชี Merchant Center หลักบัญชีเดียวสามารถมีโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google หลายรายการลงทะเบียนพร้อมกันได้ อย่างไรก็ตาม โปรเจ็กต์ Google Cloud แต่ละรายการจะลงทะเบียนกับบัญชี Merchant Center หลักได้เพียงบัญชีเดียวในแต่ละครั้ง การพยายามลงทะเบียนโปรเจ็กต์ที่ลิงก์กับบัญชี Merchant Center อื่นอยู่แล้วจะแสดงข้อผิดพลาด ALREADY_EXISTS (409 Conflict) พร้อมเหตุผล DUPLICATE_PROJECT_REGISTRATION
  • ความเป็นส่วนตัวของเจ้าของโปรเจ็กต์: ด้วยเหตุผลด้านความปลอดภัยและความเป็นส่วนตัว ทีมสนับสนุน Google Shopping และ Merchant API ไม่สามารถเปิดเผยอีเมลของเจ้าของหรือผู้ดูแลระบบโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google หากคุณ สูญเสียสิทธิ์เข้าถึงโปรเจ็กต์ โปรดติดต่อ ทีมสนับสนุนของ Google Cloud
  • ส่วนขยายการหยุดให้บริการ Content API for Shopping เป็นแบบเฉพาะโปรเจ็กต์: หากคุณได้รับการอนุมัติการเข้าถึง Content API for Shopping แบบขยาย ส่วนขยายดังกล่าวจะมีผลกับรหัสโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ที่เฉพาะเจาะจงซึ่งส่งในคำขอเท่านั้น ส่วนขยายจะไม่โอนไปยังโปรเจ็กต์ 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
  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: โทเค็นการให้สิทธิ์เพื่อเรียก API

การตอบกลับจะแสดงทรัพยากร DeveloperRegistration พร้อมหมายเลขโปรเจ็กต์ Google Cloud ที่เป็นตัวเลขของโปรเจ็กต์ที่ลิงก์ทั้งหมดใน โปรเจ็กต์ในช่อง gcpIds ดังนี้

{
  "name": "accounts/ACCOUNT_ID/developerRegistration",
  "gcpIds": [
    "123456789012",
    "987654321098"
  ]
}

นอกจากนี้ คุณยังยืนยันได้ว่าโปรเจ็กต์ Google Cloud ที่เรียกใช้ลงทะเบียนกับบัญชี Merchant Center บัญชีใดโดยเรียกใช้เมธอด accounts.developerRegistration.getAccountForGcpRegistration

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

แทนที่ค่าต่อไปนี้

  • ACCESS_TOKEN: โทเค็นการให้สิทธิ์ที่สร้างขึ้นโดยใช้ข้อมูลเข้าสู่ระบบจากโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google ที่คุณต้องการตรวจสอบ

ขั้นตอนที่ 4: เปลี่ยนเส้นทางการรับส่งข้อมูลและยกเลิกการลงทะเบียนโปรเจ็กต์ Google Cloud เก่า

  1. อัปเดตการกำหนดค่าแอปพลิเคชันให้ใช้ข้อมูลเข้าสู่ระบบจากโปรเจ็กต์ Google Cloud ใหม่ เนื่องจากโปรเจ็กต์ทั้ง 2 รายการลงทะเบียนไว้ เวิร์กโหลดจึงเปลี่ยนไปโดยไม่มีการหยุดชะงัก
  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 เก่าเพื่อการเรียก API

Java

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 ที่ลงทะเบียนไว้ใหม่ให้กับบัญชี 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 ในโปรเจ็กต์เก่า

เลือกกลยุทธ์โปรเจ็กต์การย้ายข้อมูล

สถานการณ์ ต้องมีสิทธิ์เข้าถึงระดับผู้ดูแลระบบโปรเจ็กต์เก่าไหม API ที่ต้องเปิดใช้ ต้องมีส่วนขยาย 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 ดูวิธีการทีละขั้นตอนได้ที่หัวข้อ กำหนดค่าการตรวจสอบสิทธิ์ API จาก 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 เก่า และคุณต้องการสร้างการผสานรวม Merchant API ใหม่ในโปรเจ็กต์ที่อยู่ในระบบคลาวด์ Google ที่แยกต่างหากและเฉพาะเจาะจง

  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. ย้ายข้อมูลเวิร์กโหลดทีละน้อย: ค่อยๆ เปลี่ยนการเรียก API จากโปรเจ็กต์ 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

ขั้นตอนถัดไป