Để sử dụng Merchant API, bạn phải liên kết dự án trên đám mây của Google với tài khoản Merchant Center chính thông qua quy trình đăng ký nhà phát triển. Trong 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 liên kết với tài khoản Merchant Center của mình, 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 xoay vòng mã dự án Google Cloud cho một dự án tích hợp Merchant API hiện có mà không gây 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 hiện chiến lược chuyển đổi dự án trên đám mây 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 các dự án trên Google Cloud, hãy xác minh rằng bạn đáp ứng các điều kiện tiên quyết để đăng ký làm nhà phát triển. Để biết thêm thông tin, 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 các dự án trên đám mây của Google Cloud, hãy lưu ý những 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ý nhiều dự án trên đám mây của Google cùng một lúc. Tuy nhiên, mỗi dự án trên đám mây của Google Cloud chỉ có thể được đăng ký với 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) kèm theo 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 Google Cloud. 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.
- Việc gia hạn thời gian ngừng hoạt động của Content API for Shopping áp dụng cho từng dự án: Nếu bạn được phê duyệt gia hạn quyền truy cập vào Content API for Shopping, thì việc gia hạn đó chỉ áp dụng cho mã dự án cụ thể trên Google Cloud mà bạn đã gửi trong yêu cầu. Tiện ích không tự động chuyển sang các dự án mới trên Google Cloud.
Thay đổi mã dự án trên đám mây của Google cho tài khoản Merchant API
Nếu đã sử dụng Merchant API và cần chuyển hoạt động tích hợp sang một dự án Google Cloud mới (ví dụ: do tái cơ cấu tổ chức, 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ũ), 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ợ nhiều dự án Google Cloud đã đăng ký cùng một lúc, 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 mới trên Google Cloud
- 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 trên Google Cloud.
- Bật Merchant API (
merchantapi.googleapis.com) trong dự án mới. Xem mục Bật Merchant API trong phần Tạo dự án trên đám mây của Google Cloud. - Tạo thông tin xác thực (tài khoản dịch vụ hoặc mã ứng dụng khách OAuth 2.0) trong dự án trên đám mây mới trên Google Cloud.
- 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 của bạn.
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 đăng nhập từ dự án trên đám mây Google Cloud mới
và gọi phương thức
accounts.developerRegistration.registerGcp
để liên kết dự án mới với tài khoản Merchant Center chính của bạn. Để 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 Google Cloud hiện có và dự án Google Cloud 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 Center của bạnACCESS_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 có số dự án Google Cloud dạ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 trên đám mây của Google đ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 lưu lượng truy cập và huỷ đăng ký dự án cũ trên Google Cloud
- Cập nhật cấu hình ứng dụng để sử dụng thông tin xác thực từ dự án mới của bạn trên Google Cloud. Vì cả hai dự án đều đã đă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ể xoá đường liên kết đến dự án cũ (không bắt buộc) bằng cách xác thực bằng thông tin xác thực của dự án Google Cloud cũ và gọi phương thức
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
Thay thế nội dung sau:
ACCOUNT_ID: mã truy cập Merchant Center của bạnOLD_PROJECT_ACCESS_TOKEN: mã thông báo uỷ quyền từ dự án trên đám mây Google 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ỗi lần bạn chỉ có thể đăng ký một dự án Google Cloud cho một tài khoản Merchant Center chính, 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 hướng dẫn về cách chọn tài khoản Merchant Center để đăng ký dự án, hãy xem phần Những điểm quan trọng cần lưu ý:
- Xác thực bằng thông tin xác thực của 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 chuyển email người dùng hợp lệ trong trường yêu cầudeveloperEmail. Bạn không thể dùng địa chỉ email của 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 quy định hạn chế về quyền truy cập vào dự án trên đám mây cũ trên Google Cloud, chẳng hạn như nếu khoá API ban đầu được định cấu hình trực tiếp thông qua quy trình xác thực cũ của Merchant Center hoặc nếu chủ sở hữu ban đầu của dự án đã 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 cách sau.
Chọn chiến lược dự án di chuyển
| Trường hợp | Có cần quyền quản trị đối với dự án cũ không? | Các API cần bật | Có cần tiện ích Content API for Shopping cho dự án mới không? |
|---|---|---|---|
| Cách 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 (phần mở rộng hiện có trên mã dự án cũ vẫn hợp lệ) |
| Cách 2: Giữ lại dự án cũ cho Content API for Shopping và sử dụng dự án mới cho Merchant API | Không | Bật Merchant API trên dự án mới (vẫn bật Content API for Shopping trên dự án cũ) | Không (dự án cũ giữ lại tiện ích; dự án mới chỉ gọi Merchant API) |
Cách 1: Giữ lại dự án Google Cloud hiện có
Chọn cách 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ó của bạn. Đăng nhập vào Google Cloud Console 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 trong dự án hiện tại:
- 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 của Google Cloud hoặc bằng lệnhgcloud. Để xem hướng dẫn từng bước, hãy xem bài viết Thiết lập phương thức xác thực API trong 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
để cho phép các yêu cầu từ dự án hiện tại của bạn và gọi phương thức
registerGcpđể liên kết dự án Google Cloud hiện tại với tài khoản Merchant Center chính của bạn. Các khoá tài khoản dịch vụ hiện có và tiện ích Content API for Shopping đã được phê duyệt vẫn tiếp tục hoạt động mà không có thay đổi nào.
Cách 2: Sử dụng dự án Google Cloud cũ cho Content API for Shopping và một dự án mới cho Merchant API
Chọn phương án này nếu quy trình tích hợp Content API for Shopping cũ của bạn đã đang chạy với thông tin xác thực hợp lệ và một tiện ích đượ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ữ nguyên chế độ tích hợp Content API for Shopping trên dự án trên đám mây cũ: Giữ nguyên quy trình công việc và thông tin xác thực hiện có của Content API for Shopping trên dự án trên đám mây Google Cloud cũ. Nếu yêu cầu gia hạn cho mã dự án cũ của bạn được phê duyệt, thì chế độ tích hợp Content API for Shopping hiện tại của bạn sẽ tiếp tục hoạt động cho đến thời hạn mới.
- Tạo một dự án trên đám mây mới dành riêng cho
Merchant API: Tạo một dự án trên đám mây 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 khách OAuth 2.0) cho khối lượng công việc mới của Merchant API. - Đăng ký dự án mới: Làm theo các bước trong phần Đăng ký làm nhà phát triển để cho phép các yêu cầu từ dự án mới của bạn 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ể dùng email tài khoản dịch vụ (có đuôi.gserviceaccount.com) làmdeveloperEmail. - Di chuyển dần khối lượng công việ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 ngừng hoạt động theo lịch của Content API for Shopping (hoặc trước khi thời gian gia hạn đượ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 cũ trên Google Cloud trước khi hoàn tất quá trình di chuyển
Vì Content API for Shopping không còn được dùng nữa, nên API này không còn có trong Thư viện API của Google Cloud và không thể bật trên các dự án trên đám mây mới tạo trên Google Cloud. Do đó, bạn không thể tự di chuyển khối lượng công việc hiện có của Content API for Shopping sang một dự án mới trên Google Cloud.
Nếu bạn không thể thực hiện lệnh gọi Content API for Shopping từ dự án cũ nữa (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 hiện có của bạn trên Google Cloud (Lựa chọn 1) hoặc
- Làm theo Cách 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 gây cản trở quá trình di chuyể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 đăng ký dành cho 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ề việc đăng ký làm nhà phát triển.
- Xem 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 phương thức xác thực API trong Merchant Center.
- Lên kế hoạch triển khai API phụ bằng cách Bắt đầu di chuyển.
- Tìm thông tin chi tiết về việc gia hạn quyền truy cập vào Content API for Shopping trong bài viết Yêu cầu gia hạn thời gian di chuyển.