Để sử dụng Merchant API, bạn phải liên kết dự án trên đám mây của Google Cloud với tài khoản Merchant Center chính thông qua quy trình đăng ký nhà phát triển. Trong suốt vòng đời của quá trình tích hợp, bạn có thể cần thay đổi mã dự án Google Cloud được liên kết với tài khoản Merchant Center, quản lý nhiều dự án trên các môi trường hoặc chuyển đổi dự án khi di chuyển từ Content API for Shopping.
Hướng dẫn này giải thích cách:
- Thay đổi hoặc luân phiên mã dự án Google Cloud cho một quy trình tích hợp Merchant API hiện có mà không bị gián đoạn.
- Huỷ đăng ký một dự án Google Cloud khỏi một tài khoản Merchant Center và đăng ký dự án đó với một tài khoản Merchant Center khác.
- Chọn và thực thi chiến lược chuyển đổi dự án trên đám mây của Google Cloud phù hợp nếu bạn đang di chuyển từ Content API for Shopping sang Merchant API.
Điều kiện tiên quyết
Trước khi quản lý hoặc chuyển đổi dự án trên đám mây của Google, hãy xác minh rằng bạn đáp ứng các điều kiện tiên quyết để đăng ký nhà phát triển. Để biết thêm thông tin chi tiết, hãy xem phần Điều kiện tiên quyết trong hướng dẫn Đăng ký làm nhà phát triển.
Các quy tắc và giới hạn chính
Khi lên kế hoạch thay đổi dự án trên đám mây của Google Cloud, hãy lưu ý các quy tắc sau:
- Đăng ký dự án một với nhiều: Một tài khoản Merchant Center chính có thể đăng ký đồng thời nhiều dự án trên đám mây của Google. Tuy nhiên, mỗi dự án trên đám mây của Google Cloud chỉ có thể được đăng ký cho một tài khoản Merchant Center chính tại một thời điểm bất kỳ. Nếu bạn cố gắng đăng ký một dự án đã được liên kết với một tài khoản Merchant Center khác, thì hệ thống sẽ trả về lỗi
ALREADY_EXISTS(409 Conflict) với lý doDUPLICATE_PROJECT_REGISTRATION. - Quyền riêng tư về quyền sở hữu dự án: Vì lý do bảo mật và quyền riêng tư, nhóm hỗ trợ Google Mua sắm và Merchant API không thể tiết lộ địa chỉ email của chủ sở hữu hoặc quản trị viên của một dự án trên đám mây của Google. Nếu bạn mất quyền truy cập vào một dự án, hãy liên hệ với Nhóm hỗ trợ Google Cloud.
- Các tiện ích mở rộng ngừng hoạt động của Content API for Shopping là dành riêng cho từng dự án: Nếu bạn được phê duyệt quyền truy cập mở rộng cho Content API for Shopping, thì tiện ích mở rộng đó chỉ áp dụng cho mã dự án trên đám mây cụ thể mà bạn đã gửi trong yêu cầu. Tiện ích mở rộng không tự động chuyển sang các dự án Google Cloud mới.
Thay đổi mã dự án trên đám mây của Google cho tài khoản Merchant API
Nếu bạn đã sử dụng Merchant API và cần chuyển đổi quy trình tích hợp sang một dự án trên đám mây mới của Google Cloud (ví dụ: do cơ cấu tổ chức thay đổi, chính sách thay đổi định kỳ thông tin xác thực hoặc mất quyền quản trị đối với một dự án cũ), thì bạn có thể chuyển đổi dự án mà không bị gián đoạn. Vì một tài khoản Merchant Center hỗ trợ đồng thời nhiều dự án Google Cloud đã đăng ký, nên bạn có thể đăng ký dự án mới trước khi ngừng sử dụng dự án cũ.
Bước 1: Tạo và định cấu hình dự án Google Cloud mới
- Tạo một dự án mới trong Google Cloud Console. Để biết hướng dẫn chi tiết, hãy xem bài viết Tạo dự án Google Cloud.
- Bật Merchant API (
merchantapi.googleapis.com) trong dự án mới. Xem phần Bật Merchant API trong bài viết Tạo dự án trên đám mây của Google. - Tạo thông tin xác thực (tài khoản dịch vụ hoặc mã ứng dụng OAuth 2.0) trong dự án Google Cloud mới.
- Thêm địa chỉ email xác thực (chẳng hạn như email tài khoản dịch vụ mới) làm người dùng có vai trò
ADMINtrong tài khoản Merchant Center chính.
Bước 2: Đăng ký dự án trên đám mây của Google Cloud mới
Xác thực bằng thông tin xác thực từ dự án Google Cloud mới
và gọi
accounts.developerRegistration.registerGcp
phương thức để liên kết dự án mới với tài khoản Merchant Center chính. Để biết
hướng dẫn chi tiết, hãy xem
phần Thực hiện lệnh gọi đăng ký
trong bài viết
Đăng ký làm nhà phát triển.
Bước 3: Xác minh các dự án trên đám mây của Google Cloud đã đăng ký
Để xác nhận rằng cả dự án trên đám mây Google Cloud hiện có và dự án mới đều được liên kết với tài khoản Merchant Center, hãy gọi phương thức accounts.developerRegistration.getDeveloperRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration
Authorization: Bearer ACCESS_TOKEN
Thay thế nội dung sau:
ACCOUNT_ID: mã truy cập Merchant CenterACCESS_TOKEN: mã thông báo uỷ quyền để thực hiện lệnh gọi API
Phản hồi sẽ trả về tài nguyên
DeveloperRegistration
với số dự án trên đám mây Google Cloud bằng số của tất cả các dự án được liên kết
trong trường gcpIds:
{
"name": "accounts/ACCOUNT_ID/developerRegistration",
"gcpIds": [
"123456789012",
"987654321098"
]
}
Bạn cũng có thể xác minh tài khoản Merchant Center mà dự án Google Cloud đang gọi được đăng ký bằng cách gọi phương thức
accounts.developerRegistration.getAccountForGcpRegistration:
GET https://merchantapi.googleapis.com/accounts/v1/accounts:getAccountForGcpRegistration
Authorization: Bearer ACCESS_TOKEN
Thay thế nội dung sau:
ACCESS_TOKEN: mã thông báo uỷ quyền được tạo bằng thông tin xác thực từ dự án trên đám mây của Google mà bạn muốn kiểm tra
Bước 4: Chuyển đổi lưu lượng truy cập và huỷ đăng ký dự án Google Cloud cũ
- Cập nhật cấu hình ứng dụng để sử dụng thông tin xác thực từ dự án Google Cloud mới. Vì cả hai dự án đều được đăng ký, nên khối lượng công việc của bạn sẽ chuyển đổi mà không bị gián đoạn.
- Sau khi tất cả lưu lượng truy cập đều sử dụng dự án mới, bạn có thể tuỳ ý xoá liên kết dự án cũ
bằng cách xác thực bằng thông tin xác thực dự án Google Cloud cũ
và gọi
accounts.developerRegistration.unregisterGcpphương thức:
POST https://merchantapi.googleapis.com/accounts/v1/accounts/ACCOUNT_ID/developerRegistration:unregisterGcp
Content-Type: application/json
Authorization: Bearer OLD_PROJECT_ACCESS_TOKEN
Thay thế nội dung sau:
ACCOUNT_ID: mã truy cập Merchant CenterOLD_PROJECT_ACCESS_TOKEN: mã thông báo uỷ quyền từ dự án trên đám mây Google Cloud cũ để thực hiện Lệnh gọi 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"
Chỉ định lại một dự án trên đám mây của Google Cloud đã đăng ký cho một tài khoản Merchant Center khác
Vì một dự án Google Cloud chỉ có thể được đăng ký cho một tài khoản Merchant Center chính tại một thời điểm, nên hãy làm theo các bước sau để chỉ định lại một dự án hiện có từ một tài khoản Merchant Center (OLD_ACCOUNT_ID) sang một tài khoản khác (NEW_ACCOUNT_ID). Để biết nguyên tắc về cách chọn tài khoản Merchant Center để đăng ký dự án, hãy xem phần Những điểm cần lưu ý quan trọng:
- Xác thực bằng thông tin xác thực từ dự án trên đám mây Google Cloud có quyền truy cập vào
OLD_ACCOUNT_IDvà gọiunregisterGcptrênaccounts/OLD_ACCOUNT_ID/developerRegistration. - Xác minh rằng danh tính xác thực có vai trò
ADMINtrênNEW_ACCOUNT_IDvàNEW_ACCOUNT_IDcó một trang web đã xác minh. - Gọi
registerGcptrênaccounts/NEW_ACCOUNT_ID/developerRegistrationbằng thông tin xác thực từ cùng một dự án Google Cloud. NếuNEW_ACCOUNT_IDchưa có người dùng có vai tròAPI_DEVELOPER, hãy truyền email người dùng hợp lệ vào trường yêu cầudeveloperEmail. Bạn không thể sử dụng email tài khoản dịch vụ có đuôi.gserviceaccount.comlàmdeveloperEmail.
Chuyển đổi dự án trên đám mây của Google khi di chuyển từ Content API for Shopping
Khi di chuyển từ Content API for Shopping sang Merchant API, bạn có thể gặp phải các giới hạn về quyền truy cập đối với dự án Google Cloud cũ (ví dụ: nếu bạn đã định cấu hình trực tiếp các khoá API ban đầu thông qua quy trình xác thực Merchant Center cũ hoặc nếu chủ sở hữu dự án ban đầu đã rời khỏi tổ chức của bạn).
Tuỳ thuộc vào việc bạn muốn giữ lại dự án hiện có hay sử dụng một dự án mới cho Merchant API trong khi vẫn giữ Content API for Shopping trên dự án cũ, hãy chọn một trong hai lựa chọn sau.
Chọn chiến lược di chuyển dự án
| Trường hợp | Cần có quyền quản trị đối với dự án cũ? | API cần bật | Có cần tiện ích mở rộng Content API for Shopping trên dự án mới không? |
|---|---|---|---|
| Lựa chọn 1: Giữ lại dự án hiện có | Có (hoặc khôi phục thông qua Nhóm hỗ trợ Google Cloud) | Bật Merchant API trên dự án hiện có (Content API for Shopping đã được bật) | Không (tiện ích mở rộng hiện có trên mã dự án cũ vẫn hợp lệ) |
| Lựa chọn 2: Giữ lại dự án cũ cho Content API for Shopping và sử dụng một dự án mới cho Merchant API | Không | Bật Merchant API trên dự án mới (giữ Content API for Shopping được bật trên dự án cũ) | Không (dự án cũ vẫn giữ lại tiện ích mở rộng; dự án mới chỉ gọi Merchant API) |
Lựa chọn 1: Giữ lại dự án Google Cloud hiện có
Chọn lựa chọn này nếu bạn muốn sử dụng dự án Google Cloud hiện có cho cả Content API for Shopping và Merchant API.
Trước khi bắt đầu, hãy xác minh hoặc khôi phục quyền truy cập vào dự án hiện có. Đăng nhập vào bảng điều khiển Google Cloud và xác nhận rằng tài khoản của bạn có bất kỳ vai trò nào sau đây trên dự án hiện có:
- Chủ sở hữu (
roles/owner), - Người chỉnh sửa (
roles/editor) - Quản trị viên sử dụng dịch vụ (
roles/serviceusage.serviceUsageAdmin)
- Bật Merchant API: Bật
merchantapi.googleapis.comtrong Thư viện API Google Cloud hoặc bằng lệnhgcloud. Để biết hướng dẫn từng bước, hãy xem bài viết Định cấu hình quy trình xác thực API từ Merchant Center. - Đăng ký dự án Google Cloud với Merchant Center:
Làm theo các bước trong hướng dẫn
Đăng ký làm nhà phát triển
để uỷ quyền cho các yêu cầu từ dự án hiện có và gọi phương thức
registerGcpđể liên kết dự án Google Cloud hiện có với tài khoản Merchant Center chính. Các khoá tài khoản dịch vụ hiện có và tiện ích mở rộng Content API for Shopping đã được phê duyệt sẽ tiếp tục hoạt động mà không cần thay đổi.
Lựa chọn 2: Sử dụng dự án trên đám mây Google Cloud cũ cho Content API for Shopping và một dự án mới cho Merchant API
Chọn lựa chọn này nếu quy trình tích hợp Content API for Shopping cũ của bạn đã chạy với thông tin xác thực hợp lệ và một tiện ích mở rộng đã được phê duyệt trên dự án trên đám mây Google Cloud cũ, đồng thời bạn muốn xây dựng quy trình tích hợp Merchant API mới trong một dự án trên đám mây Google Cloud riêng biệt, chuyên dụng:
- Giữ lại quy trình tích hợp Content API for Shopping trên dự án cũ: Giữ lại các quy trình làm việc và thông tin xác thực Content API for Shopping hiện có đang chạy trên dự án Google Cloud cũ. Nếu yêu cầu tiện ích mở rộng của bạn cho mã dự án cũ đã được phê duyệt, thì quy trình tích hợp Content API for Shopping hiện tại sẽ tiếp tục hoạt động cho đến thời hạn mở rộng.
- Tạo một dự án Google Cloud mới dành riêng cho Merchant API: Tạo một dự án Google Cloud mới, bật
merchantapi.googleapis.comvà tạo thông tin xác thực (tài khoản dịch vụ hoặc mã ứng dụng OAuth 2.0) cho khối lượng công việc Merchant API mới. - Đăng ký dự án mới: Làm theo các bước trong
Đăng ký làm nhà phát triển để
uỷ quyền cho các yêu cầu từ dự án mới và gọi phương thức
registerGcpbằng email liên hệ hợp lệ của nhà phát triển. Bạn không thể sử dụng email tài khoản dịch vụ (có đuôi.gserviceaccount.com) làmdeveloperEmail. - Di chuyển khối lượng công việc theo từng bước: Chuyển dần các lệnh gọi API từ dự án Content API for Shopping cũ sang dự án Merchant API mới, trước ngày Content API for Shopping ngừng hoạt động theo lịch (hoặc trước khi tiện ích mở rộng đã được phê duyệt hết hạn) và ngừng sử dụng dự án cũ sau khi bạn hoàn tất quá trình di chuyển.
Trường hợp đặc biệt: Mất quyền truy cập vào dự án Google Cloud cũ trước khi hoàn tất quá trình di chuyển
Vì Content API for Shopping đã ngừng hoạt động, nên API này không còn xuất hiện trong Thư viện API Google Cloud và không thể bật trên các dự án trên đám mây mới tạo. Do đó, bạn không thể tự di chuyển khối lượng công việc Content API for Shopping hiện có sang một dự án trên đám mây Google Cloud mới.
Nếu bạn không còn có thể thực hiện các lệnh gọi Content API for Shopping từ dự án cũ (ví dụ: do thông tin xác thực bị thu hồi hoặc không thể khôi phục quyền truy cập vào dự án):
- Liên hệ với Nhóm hỗ trợ Google Cloud để khôi phục quyền truy cập vào dự án Google Cloud hiện có (Lựa chọn 1) hoặc
- Làm theo Lựa chọn 2 để tạo và đăng ký một dự án trên đám mây Google Cloud mới, đồng thời di chuyển trực tiếp các quy trình làm việc bị ảnh hưởng sang Merchant API. Nếu bạn gặp phải vấn đề nghiêm trọng khiến quá trình di chuyển bị chặn, hãy liên hệ với nhóm hỗ trợ Merchant API.
Các bước tiếp theo
- Tìm hiểu thêm về các yêu cầu đối với quy trình đăng ký nhà phát triển trong bài viết Đăng ký làm nhà phát triển và Câu hỏi thường gặp về quy trình đăng ký nhà phát triển.
- Xem lại cách hoạt động của thông tin xác thực cũ trong bài viết Định cấu hình quy trình xác thực API từ Merchant Center.
- Lên kế hoạch triển khai API phụ bằng bài viết Bắt đầu di chuyển.
- Tìm thông tin chi tiết về quyền truy cập mở rộng vào Content API for Shopping trong bài viết Yêu cầu gia hạn thời gian di chuyển.