Phần này giải đáp các câu hỏi thường gặp liên quan đến việc Đăng ký nhà phát triển cho Merchant API.
Đăng ký chung
Câu hỏi thường gặp về quy trình đăng ký:
Nhà phát triển có bắt buộc phải đăng ký để sử dụng Merchant API không?
Có. Bạn phải đăng ký thông tin liên hệ của nhà phát triển để Google có thể gửi các thông tin cập nhật quan trọng liên quan đến API, chẳng hạn như thông báo về dịch vụ và thông tin về các tính năng mới.
Nếu chỉ muốn khám phá và thử nghiệm Merchant API, bạn có thể sử dụng các công cụ như Google OAuth Playground và API Explorer mà không cần đăng ký.
Tôi cần đăng ký bao lâu một lần?
Đăng ký là một quy trình thiết lập một lần cho mỗi dự án trên Google Cloud. Dù đang làm việc với nhiều tài khoản người bán hay không, bạn chỉ thực hiện thao tác đăng ký một lần và thao tác này áp dụng cho tất cả người dùng và tài khoản dịch vụ trong dự án trên đám mây Google Cloud được liên kết.
Sau khi một dự án trên Google Cloud được đăng ký thành công, mối liên kết sẽ vẫn hoạt động trừ phi bạn xoá mối liên kết đó một cách rõ ràng bằng cách gọi phương thức unregisterGcp. Bạn không thể đăng ký các dự án dùng chung do Google sở hữu, chẳng hạn như APIs Explorer hoặc OAuth Playground.
Tôi nên cung cấp địa chỉ email nào làm thông tin liên hệ của nhà phát triển?
Bạn nên sử dụng địa chỉ email công ty của một cá nhân. Ngoài ra, bạn có thể sử dụng các email đại diện chung của nhóm. Bạn không thể sử dụng email của tài khoản dịch vụ vì nội dung trao đổi dành cho người nhận là con người. Google gửi các thông tin cập nhật quan trọng liên quan đến API, chẳng hạn như thông báo về dịch vụ và thông tin về các tính năng mới.
Nếu địa chỉ email thuộc về một người dùng hiện có trong tài khoản Merchant Center, thì người dùng đó sẽ tự động được cấp vai trò API_DEVELOPER. Nếu chưa, lời mời sẽ được gửi đến địa chỉ đó.
Trường địa chỉ email liên hệ của nhà phát triển là không bắt buộc trong phương thức registerGcp. Nếu khi đăng ký, bạn không cung cấp giá trị cho trường này, thì bạn phải tạo một người dùng có vai trò API_DEVELOPER trong giao diện người dùng Merchant Center hoặc bằng cách gọi phương thức accounts.users.create.
Địa chỉ email liên hệ của nhà phát triển có cần phải là Tài khoản Google không?
Có. Để sử dụng một địa chỉ email không phải của Google mà bạn đang dùng, bạn có thể liên kết địa chỉ đó với một Tài khoản Google bằng cách chọn mục Sử dụng địa chỉ email hiện có của bạn trong quy trình đăng ký Tạo Tài khoản Google. Bạn không thể sử dụng email của tài khoản dịch vụ vì tài khoản dịch vụ không nhận được email.
Làm cách nào để thực hiện quy trình xác thực và cấp phép cho lệnh gọi đăng ký?
Có 2 trường hợp xác thực riêng biệt để xác thực và uỷ quyền cho lệnh gọi đăng ký, tuỳ thuộc vào trường hợp sử dụng của bạn:
- OAuth 2.0: dành cho các nhà cung cấp hoặc công ty quảng cáo bên thứ ba quản lý nhiều tài khoản người bán
- Tài khoản dịch vụ: để truy cập vào tài khoản Merchant Center của riêng bạn
Sơ đồ trước đó cho thấy 2 luồng xác thực và uỷ quyền cho lệnh gọi đăng ký. Bạn có thể chọn giữa:
- Sử dụng OAuth với một địa chỉ email như account@email.com được liên kết với Tài khoản Google
- Sử dụng tài khoản dịch vụ, chẳng hạn như sa@project.iam.gserviceaccount.com
Nếu bạn quyết định sử dụng OAuth:
- Tạo thông tin xác thực OAuth trong dự án trên đám mây Google Cloud cho email của bạn
- Đảm bảo rằng địa chỉ email uỷ quyền có trong Merchant Center và có loại quyền truy cập là
ADMIN
Nếu bạn quyết định sử dụng tài khoản dịch vụ:
- Đảm bảo rằng tài khoản dịch vụ tồn tại trong dự án Google Cloud của bạn
- Đảm bảo rằng địa chỉ email được liên kết với tài khoản dịch vụ có trong Merchant Center và có loại quyền truy cập là
ADMIN
Thực hiện lệnh gọi đăng ký trong bối cảnh bảo mật của danh tính xác thực, bằng cách sử dụng các lệnh gọi API trực tiếp hoặc thư viện ứng dụng. Cung cấp địa chỉ email liên hệ của nhà phát triển, ví dụ: developer@email.com.
Nếu lệnh gọi đăng ký thành công, thì người dùng sẽ tồn tại trong Merchant Center của bạn với địa chỉ email nhà phát triển được cung cấp và vai trò API_DEVELOPER. Bạn sẽ nhận được một tài nguyên DeveloperRegistration làm phản hồi.
Email xác thực và email liên hệ của nhà phát triển có gì khác nhau?
Hai địa chỉ email này phục vụ các mục đích riêng biệt trong hệ sinh thái Merchant API:
- Xác thực email: Thông thường, bạn sẽ sử dụng email được liên kết với Tài khoản Google hoặc với một tài khoản dịch vụ làm danh tính để uỷ quyền cho các yêu cầu đến Merchant API, miễn là:
- Người dùng này có trong tài khoản Merchant Center của bạn và có vai trò
ADMIN. - Một Dự án Google Cloud đã bật Merchant API sẽ lưu trữ ứng dụng OAuth hoặc tài khoản dịch vụ được liên kết với email cho phép các lệnh gọi API.
- Người dùng này có trong tài khoản Merchant Center của bạn và có vai trò
- Email liên hệ của nhà phát triển: Email liên hệ của nhà phát triển cũng phải được liên kết với một Tài khoản Google, nhưng đóng vai trò là người liên hệ chính để nhận các thông báo quan trọng về dịch vụ và thông tin cập nhật về API của Google. Đó có thể là của một người dùng hoặc một nhóm người dùng. Theo mặc định, người dùng này sẽ có vai trò
API developertrong Merchant Center.
Tôi có bắt buộc phải chấp nhận lời mời nhận được qua email liên hệ của nhà phát triển không?
Có. Người nhận email liên hệ của nhà phát triển mà bạn cung cấp có 14 ngày để chấp nhận lời mời. Họ chỉ hoàn tất quy trình đăng ký sau khi chấp nhận lời mời. Tuy nhiên, bạn có thể thực hiện các lệnh gọi API trong thời gian này.
Nếu lời mời không được chấp nhận trong thời gian đã chỉ định, thì đường liên kết lời mời sẽ hết hạn. Bạn không thể thực hiện các lệnh gọi Merchant API nữa và phải bắt đầu lại quy trình đăng ký.
Quản lý tài khoản và dự án
Câu hỏi thường gặp về việc quản lý tài khoản và dự án:
Tôi làm việc với nhiều tài khoản Merchant Center. Tôi có cần đăng ký mọi tài khoản Merchant Center mà tôi muốn sử dụng với Merchant API không?
Không. Nếu bạn là nhà phát triển bên thứ ba hoặc công ty quảng cáo quản lý nhiều tài khoản của người bán, bạn sẽ đăng ký dự án Google Cloud bằng tài khoản Merchant Center chính của riêng bạn, chứ không phải bằng từng tài khoản của người bán. Bằng cách này, bạn đại diện cho nhà phát triển trong tất cả công việc liên quan đến API mà bạn thực hiện cho người bán.
Tôi làm việc với nhiều tài khoản Merchant Center. Làm cách nào để chọn tài khoản Merchant Center chính?
Việc chọn tài khoản chính để sử dụng tuỳ thuộc vào loại hình doanh nghiệp của bạn:
- Trang web thương mại có tài khoản nâng cao hiện có: Nếu doanh nghiệp của bạn hoạt động dưới dạng một trang web thương mại và đã có một tài khoản nâng cao đại diện cho toàn bộ nền tảng, hãy sử dụng mã tài khoản hiện có này làm Tài khoản Merchant Center chính.
- Dịch vụ so sánh giá (CSS): Nếu bạn là một CSS, hãy sử dụng mã tài khoản CSS duy nhất hoặc mã tài khoản nhóm Dịch vụ so sánh giá.
- Công ty quảng cáo, nhà phát triển và các bên thứ ba khác: Nếu là một doanh nghiệp bên thứ ba (chẳng hạn như công ty quảng cáo hoặc nhà phát triển bên thứ ba) quản lý nhiều tài khoản người bán và không có một mã truy cập Merchant Center duy nhất đại diện cho doanh nghiệp của bạn, thì bạn nên tạo một tài khoản Merchant Center chính mới và yêu cầu chuyển đổi tài khoản đó thành tài khoản nâng cao.
Sau khi đăng ký dự án Google Cloud vào tài khoản Merchant Center chính, bạn có thể sử dụng cùng một dự án đó để quản lý mọi tài khoản Merchant Center khác mà bạn có quyền truy cập mà không cần đăng ký từng tài khoản.
Tôi sử dụng nhiều dự án trên Google Cloud. Tôi có cần đăng ký từng thiết bị không?
Có. Vì quy trình đăng ký liên kết dự án Google Cloud gọi, nên bạn phải thực hiện lệnh gọi registerGcp từ mỗi dự án Google Cloud mà bạn dùng để thực hiện lệnh gọi API.
Tại một thời điểm, mỗi dự án Google Cloud chỉ có thể được đăng ký với đúng một tài khoản Merchant Center. Tuy nhiên, một tài khoản Merchant Center duy nhất có thể có nhiều dự án Google Cloud được đăng ký. Tương tự, bạn có thể sử dụng cùng một địa chỉ email của nhà phát triển để thực hiện nhiều quy trình đăng ký trên nhiều dự án Google Cloud hoặc nhiều Merchant Center.
Điều gì xảy ra nếu tôi đăng ký một dự án trên đám mây của Google với nhiều tài khoản Merchant Center?
Nếu bạn cố gắng đăng ký một dự án trên Google Cloud đã được đăng ký bằng một tài khoản Merchant Center khác, thì bạn sẽ gặp lỗi ALREADY_REGISTERED.
Làm cách nào để xác thực lệnh gọi API đăng ký nhà phát triển?
Để xác thực lệnh gọi API đăng ký nhà phát triển cho Merchant API, bạn sử dụng thông tin đăng nhập được quản lý thông qua một dự án Google Cloud. Bạn có hai lựa chọn chính cho danh tính thực hiện quy trình xác thực:
- Tài khoản Google (chẳng hạn như Gmail) sử dụng OAuth 2.0: Phương thức này sử dụng thông tin xác thực ứng dụng OAuth 2.0 được tạo trong Dự án Google Cloud của bạn. Lệnh gọi API được uỷ quyền thay mặt cho một Tài khoản Google cụ thể mà người dùng đăng nhập.
- Tài khoản dịch vụ: Phương thức này sử dụng Tài khoản dịch vụ Google Cloud, đây là một loại Tài khoản Google đặc biệt dành cho các ứng dụng. Thông tin đăng nhập cho Tài khoản dịch vụ cũng được quản lý trong dự án trên đám mây của Google Cloud của bạn.
Để đăng ký thành công tư cách nhà phát triển, danh tính xác thực (Tài khoản Google hoặc Tài khoản dịch vụ) phải đáp ứng các tiêu chí sau trong Merchant Center:
- Tồn tại dưới dạng Người dùng trong Merchant Center: Địa chỉ email được liên kết với Tài khoản Google xác thực hoặc Tài khoản dịch vụ phải được thêm dưới dạng người dùng trong tài khoản Merchant Center mà bạn đang đăng ký.
- Yêu cầu về vai trò quản trị viên: Người dùng này phải được chỉ định vai trò
ADMINtrong tài khoản Merchant Center cụ thể đó.
Khi thực hiện lệnh gọi API:
- Nếu đang sử dụng Lệnh gọi API trực tiếp, bạn phải lấy và cung cấp Mã truy cập hợp lệ trong tiêu đề
Authorization. Mã thông báo này được tạo bằng quy trình OAuth 2.0 cho một Tài khoản Google hoặc quy trình xác thực từ máy chủ đến máy chủ cho một Tài khoản dịch vụ. - Thư viện ứng dụng do Google cung cấp thường xử lý những điểm phức tạp của việc lấy và làm mới Mã truy cập cho bạn trong quá trình thiết lập.
Người dùng xác thực có thể không phải là người dùng liên hệ của nhà phát triển. Để biết thêm thông tin, hãy xem bài viết Email xác thực và email liên hệ của nhà phát triển khác nhau như thế nào?
Tôi cần làm mới mã truy cập bao lâu một lần?
Mã truy cập cho cả Tài khoản dịch vụ và OAuth 2.0 thường hết hạn sau 1 giờ. Tuy nhiên, cơ chế để lấy một mã mới phụ thuộc vào phương thức xác thực mà bạn đang sử dụng:
- Tài khoản dịch vụ sử dụng khoá riêng tư hoặc thông tin đăng nhập môi trường để tạo mã truy cập mới bất cứ khi nào cần.
- Các quy trình OAuth 2.0 sử dụng refresh_token để gọi điểm cuối mã thông báo Google OAuth2 nhằm nhận mã truy cập mới có thời hạn 1 giờ.
Bạn nên sử dụng Thư viện xác thực chính thức của Google. Thư viện này sẽ tự động xử lý quy trình xoay vòng này để ứng dụng của bạn không bao giờ gặp phải thời gian ngừng hoạt động.
Người dùng và vai trò
Câu hỏi thường gặp về người dùng và vai trò:
Tài khoản email của nhà phát triển có bắt buộc phải có sẵn trong Merchant Center không?
Không. Nếu tài khoản email đăng ký chưa tồn tại trong Merchant Center, thì Merchant API sẽ tạo tài khoản trong Merchant Center với email được chỉ định ở trạng thái Đang chờ xử lý. Nếu địa chỉ email của nhà phát triển thuộc về một người dùng hiện tại trong tài khoản Merchant Center, thì người dùng đó sẽ tự động được cấp vai trò API_DEVELOPER.
Địa chỉ email liên hệ của nhà phát triển có cần có quyền Quản trị viên trong Merchant Center không?
Không. Theo mặc định, người dùng Merchant Center được liên kết với email liên hệ của nhà phát triển sẽ có vai trò API_DEVELOPER. Đây là vai trò bắt buộc để nhận các thông báo quan trọng. Tuy nhiên, người dùng này chỉ có các quyền tối thiểu trong Merchant Center. Để cho phép người dùng này thực hiện các lệnh gọi API khác hoặc quản lý chế độ cài đặt trong giao diện người dùng Merchant Center, bạn cần cấp cho họ các vai trò bổ sung, chẳng hạn như STANDARD hoặc ADMIN. Để biết thêm thông tin về các vai trò trong Merchant Center, hãy xem bài viết Các loại quyền truy cập.
Vai trò "Nhà phát triển API" có những quyền gì?
Vai trò API Developer là vai trò có ít quyền nhất trong Merchant Center. Nếu dự định sử dụng email liên hệ của nhà phát triển để uỷ quyền các lệnh gọi đến Merchant API, bạn nên thêm quyền ADMIN hoặc STANDARD để cho phép người dùng thực hiện các lệnh gọi API.
Tôi có cần đăng ký từng người dùng nhà phát triển hoặc tài khoản dịch vụ gọi API không?
Không. Quy trình đăng ký nhà phát triển được liên kết với dự án Google Cloud đang được dùng để thực hiện các lệnh gọi API, chứ không liên kết với từng người dùng hoặc tài khoản dịch vụ. Sau khi đăng ký thành công một dự án Google Cloud bằng tài khoản Merchant Center chính, bạn có thể sử dụng mọi danh tính được quản lý thông qua dự án Google Cloud đã liên kết bằng thông tin xác thực OAuth hoặc tài khoản dịch vụ để uỷ quyền các lệnh gọi Merchant API, miễn là các danh tính đó có trong Merchant Center và được chỉ định vai trò ADMIN.
Làm cách nào để thay đổi email liên hệ của nhà phát triển sau lần đăng ký ban đầu?
Để quản lý hoặc thay đổi người liên hệ, hãy sử dụng dịch vụ accounts.users tiêu chuẩn hoặc trang "Quyền truy cập và dịch vụ" trong giao diện người dùng Merchant Center để thêm hoặc xoá người dùng có vai trò API Developer.
Điều gì sẽ xảy ra nếu người dùng "Nhà phát triển API" cuối cùng bị xoá khỏi tài khoản Merchant Center?
Chúng tôi sẽ kích hoạt thời gian ân hạn 30 ngày để tránh gián đoạn dịch vụ ngay lập tức. Trong thời gian này:
- Quản trị viên sẽ nhận được 3 thông báo bắt buộc về dịch vụ qua email (thường là khoảng 30, 17 và 4 ngày trước khi bị chặn).
- Các lệnh gọi API vẫn sẽ hoạt động bình thường.
- Nếu bạn không thêm
API Developermới trước khi hết thời gian gia hạn, thì các lệnh gọi API từ các dự án Google Cloud được liên kết sẽ bị chặn kèm theo lỗiAUTH_GCP_NOT_REGISTERED.
Khi thời gian ân hạn 30 ngày kết thúc, các lệnh gọi API từ các dự án Google Cloud được liên kết sẽ bị chặn và gặp lỗi AUTH_GCP_NOT_REGISTERED cho đến khi thông tin liên hệ hợp lệ của nhà phát triển được khôi phục.
Điều gì sẽ xảy ra nếu Mã truy cập Merchant Center mà nhà phát triển đăng ký bị xoá?
Đừng xoá tài khoản Merchant Center dùng để đăng ký nhà phát triển khi chế độ tích hợp của bạn đang hoạt động. Việc xoá tài khoản này sẽ ngay lập tức làm gián đoạn quá trình tích hợp và bạn sẽ không thể thực hiện các Lệnh gọi API từ dự án trên đám mây của Google được liên kết nữa.
Nếu phải xoá tài khoản Merchant Center đó, trước tiên, bạn nên gọi phương thức unregisterGcp để xoá mối liên kết một cách an toàn, rồi sau đó mới tiến hành xoá Mã truy cập Merchant Center. Nếu muốn tiếp tục sử dụng Merchant API, bạn cần đăng ký bằng một Mã truy cập Merchant Center khác ngay sau khi hủy đăng ký mã hiện tại. Sau đó, bạn mới tiến hành xoá mã truy cập Merchant Center.
Các trường hợp sử dụng đặc biệt
Các câu hỏi thường gặp về các trường hợp sử dụng đặc biệt:
Tôi là một công ty quảng cáo hoặc nhà phát triển bên thứ ba quản lý nhiều tài khoản người bán. Đâu là cách thiết lập tốt nhất?
Nhà phát triển và công ty quảng cáo bên thứ ba nên duy trì tài khoản Merchant Center chính của riêng họ và đăng ký tất cả các dự án Google Cloud vào tài khoản tập trung duy nhất đó. Đừng đăng ký dự án Google Cloud của bạn bằng tài khoản của từng người bán riêng lẻ.
Quy trình đăng ký đối với Google Apps Script diễn ra như thế nào?
Apps Script thường chạy trên một dự án mặc định của Google Cloud. Bạn phải đăng ký mã nhận dạng mặc định này trên Google Cloud bằng tài khoản Merchant Center. API sẽ tự động lấy Google Cloud ID, vì vậy bạn không cần cung cấp mã này dưới dạng một tham số.
Tôi có thể kiểm tra xem một mã truy cập Merchant Center có được đăng ký cho một mã dự án cụ thể trên Google Cloud hay không?
Có. Bạn có thể kiểm tra mã Merchant Center nào được đăng ký cho một dự án trên đám mây cụ thể trên Google Cloud bằng phương thức getAccountForGcpRegistration. Để xoá mối liên kết dự án Google Cloud với tài khoản Merchant Center, hãy sử dụng phương thức unregisterGcp.