常見問題

本節將說明 Merchant API 開發人員註冊的常見問題。

一般註冊

註冊程序常見問題:

使用 Merchant API 時,是否必須註冊開發人員?

可以。請務必註冊開發人員聯絡資訊,以便 Google 傳送重要的 API 專屬更新,例如服務公告和新功能資訊。

如要探索及測試 Merchant API,可以使用 Google OAuth Playground 和 API Explorer 等工具,這些工具不需要註冊。

多久需要註冊一次?

註冊是每個 Google Cloud 專案的一次性設定。 無論你是否使用多個商家帳戶,註冊作業都只需執行一次,且適用於連結的 Google Cloud 專案中的所有使用者和服務帳戶。

成功註冊 Google Cloud 專案後,除非呼叫 unregisterGcp 方法明確移除連結,否則連結會保持有效。您無法註冊共用或 Google 擁有的專案,例如 API Explorer 或 OAuth Playground。

我應該提供哪個電子郵件地址做為開發人員聯絡資訊?

建議使用個人的公司電子郵件地址。或者,您也可以使用一般群組別名。您無法使用服務帳戶電子郵件地址,因為通訊內容是傳送給真人。Google 會傳送重要的 API 專屬更新,例如服務公告和新功能資訊。

如果電子郵件地址屬於 Merchant Center 帳戶的現有使用者,系統會自動授予 API_DEVELOPER 角色。如果沒有,系統會將邀請傳送至該地址。

registerGcp 方法中,開發人員聯絡電子郵件地址欄位為選填。如果在註冊時未提供這個欄位的值,您必須在 Merchant Center 使用者介面中建立具有 API_DEVELOPER 角色的使用者,或呼叫 accounts.users.create 方法。

開發人員聯絡電子郵件地址是否必須是 Google 帳戶?

可以。如要使用現有的非 Google 電子郵件地址,請在「建立 Google 帳戶」註冊程序中選擇「使用現有的電子郵件地址」選項,將該地址與 Google 帳戶建立關聯。服務帳戶無法接收電子郵件,因此您無法使用服務帳戶電子郵件地址。

如何對註冊呼叫執行驗證和授權?

視用途而定,註冊呼叫的驗證和授權有兩種不同的驗證情境:

  • OAuth 2.0:適用於管理多個商家帳戶的第三方供應商或代理商
  • 服務帳戶:用於存取你自己的 Merchant Center 帳戶

無障礙替代文字

上圖顯示註冊呼叫的兩種驗證和授權流程。你可以選擇:

  • 使用 OAuth 和與 Google 帳戶相關聯的電子郵件地址,例如 account@email.com
  • 使用服務帳戶,例如 sa@project.iam.gserviceaccount.com

如果決定使用 OAuth

  • 在 Google Cloud 專案中為電子郵件建立 OAuth 憑證
  • 請確認授權電子郵件地址存在於 Merchant Center 中,且具有 ADMIN 存取類型

如果您決定使用服務帳戶

  • 確認服務帳戶存在於 Google Cloud 專案中
  • 請確認與服務帳戶相關聯的電子郵件地址存在於 Merchant Center 中,且具有 ADMIN 存取類型

使用直接 API 呼叫或用戶端程式庫,在驗證身分的安全環境下執行註冊呼叫。提供開發人員聯絡電子郵件地址,例如 developer@email.com

如果註冊呼叫成功,Merchant Center 中就會出現使用者,並提供開發人員電子郵件地址和 API_DEVELOPER 角色。您會收到 DeveloperRegistration 資源做為回應。

驗證電子郵件和開發人員聯絡電子郵件有何不同?

這兩個電子郵件地址在 Merchant API 生態系統中各有用途:

  • 驗證電子郵件:您通常會使用與 Google 帳戶或服務帳戶相關聯的電子郵件地址做為身分,授權對 Merchant API 提出要求,但前提是:
    • 該使用者位於你的 Merchant Center,且具有 ADMIN 角色。
    • 啟用 Merchant API 的 Google Cloud 專案會代管 OAuth 用戶端或與電子郵件相關聯的服務帳戶,而該電子郵件會授權 API 呼叫。
  • 開發人員聯絡電子郵件地址開發人員聯絡電子郵件地址也必須與 Google 帳戶建立關聯,但主要用於接收 Google 的重要服務公告和 API 更新資訊。擁有者可以是使用者或使用者群組。預設會取得 Merchant Center 的API developer角色。

我是否必須接受開發人員聯絡電子郵件收到的邀請?

可以。您提供的開發人員聯絡人電子郵件地址收件者,有 14 天的時間可以接受邀請。對方接受邀請後,註冊程序才算完成。不過,您可以在這段期間執行 API 呼叫。

如果受邀者未在指定時間內接受邀請,邀請連結就會失效。你無法再執行 Merchant API 呼叫,必須重新啟動註冊程序。

帳戶和專案管理

帳戶和專案管理相關常見問題:

我使用多個 Merchant Center 帳戶。我是否需要註冊每個要搭配 Merchant API 使用的 Merchant Center 帳戶?

否。如果您是第三方開發人員或代理商,負責管理多個商家帳戶,請使用自己的主要 Merchant Center 帳戶註冊 Google Cloud 專案,而非使用每個商家的帳戶。這樣一來,您在為商家進行所有 API 作業時,即代表開發人員。

我使用多個 Merchant Center 帳戶。如何選擇主要 Merchant Center 帳戶?

選擇要使用的主要帳戶取決於你的業務類型:

  • 已有進階帳戶的市集:如果你的商家以市集形式經營,且已有代表整個平台的進階帳戶,請使用這個現有帳戶 ID 做為主要的 Merchant Center 帳戶。
  • 購物比較服務 (CSS):如果您是 CSS,請使用專屬的 CSS 帳戶 ID 或 CSS 群組帳戶 ID。
  • 代理商、開發人員和其他第三方:如果您是第三方商家 (例如代理商或第三方開發人員),負責管理多個商家帳戶,但沒有代表貴商家的單一 Merchant Center ID,請建立新的主要 Merchant Center 帳戶,並要求將其轉換為進階帳戶

將 Google Cloud 專案註冊至主要 Merchant Center 帳戶後,您就能使用該專案管理有權存取的任何其他 Merchant Center 帳戶,不必個別註冊這些帳戶。

我使用多項 Google Cloud 專案,我是否需要分別註冊?

可以。由於註冊程序會連結呼叫 Google Cloud 專案,因此您必須從每個用於發出 API 呼叫的 Google Cloud 專案執行 registerGcp 呼叫。

一個 Google Cloud 專案一次只能註冊至一個 Merchant Center 帳戶。不過,單一 Merchant Center 帳戶可以註冊多個 Google Cloud 專案。同樣地,您可以使用同一個開發人員電子郵件地址,在多個 Google Cloud 專案或多個 Merchant Center 中執行多項註冊程序。

如果使用多個 Merchant Center 帳戶註冊 Google Cloud 專案,會發生什麼情況?

如果嘗試註冊已向其他 Merchant Center 帳戶註冊的 Google Cloud 專案,系統會顯示 ALREADY_REGISTERED 錯誤。

如何驗證開發人員註冊 API 呼叫?

如要驗證 Merchant API 的開發人員註冊 API 呼叫,請使用透過 Google Cloud 專案管理的憑證。您有兩個主要選項,可選擇執行驗證的身分:

  • 使用 OAuth 2.0 的 Google 帳戶 (例如 Gmail):這個方法會使用在 Google Cloud 專案中產生的 OAuth 2.0 用戶端憑證。API 呼叫會代表使用者登入的特定 Google 帳戶獲得授權。
  • 服務帳戶:這個方法會使用 Google Cloud 服務帳戶,這是專為應用程式設計的特殊 Google 帳戶。服務帳戶的憑證也會在 Google Cloud 專案中管理。

如要成功註冊開發人員,驗證身分 (Google 帳戶或服務帳戶) 必須符合 Merchant Center 的下列條件:

  • 在 Merchant Center 中以使用者身分存在:與驗證 Google 帳戶或服務帳戶相關聯的電子郵件地址,必須新增為您註冊的 Merchant Center 帳戶使用者。
  • 必須具備管理員角色:使用者必須在特定 Merchant Center 帳戶中獲派 ADMIN 角色。

發出 API 呼叫時:

  • 如果您使用直接 API 呼叫,則必須在 Authorization 標頭中取得並提供有效的存取權杖。這個權杖是透過 Google 帳戶的 OAuth 2.0 流程,或是服務帳戶的伺服器對伺服器驗證流程產生。
  • Google 提供的用戶端程式庫通常會處理複雜的程序,在設定時為您取得及重新整理存取權杖。

驗證使用者可能與開發人員聯絡人使用者不同。 詳情請參閱「驗證電子郵件和開發人員聯絡電子郵件有何不同?」一文。

我需要多久更新一次存取權杖?

服務帳戶和 OAuth 2.0 的存取權杖通常會在 1 小時後失效。不過,取得新權杖的機制取決於您使用的驗證方法:

  • 服務帳戶會使用私密金鑰環境憑證,在需要時建立新的存取權杖。
  • OAuth 2.0 流程會使用 refresh_token 呼叫 Google OAuth2 權杖端點,以接收新的 1 小時存取權杖。

強烈建議使用 Google 官方的 Google Auth 程式庫,這些程式庫會自動處理這項輪替作業,確保應用程式絕不會發生停機問題。

使用者和角色

使用者和角色相關常見問題:

開發人員電子郵件帳戶是否必須已存在於 Merchant Center 中?

否。如果註冊電子郵件帳戶尚未存在於 Merchant Center,Merchant API 會在 Merchant Center 中建立帳戶,並將狀態設為「待處理」。如果開發人員電子郵件地址屬於 Merchant Center 帳戶中的現有使用者,系統會自動授予 API_DEVELOPER 角色。

開發人員聯絡電子郵件地址是否需要具備 Merchant Center 的管理員權限?

不需要。與開發人員聯絡電子郵件地址相關聯的 Merchant Center 使用者,預設會取得接收重要通知所需的API_DEVELOPER角色。不過,這類使用者在 Merchant Center 內只有最低權限。如要允許該使用者發出其他 API 呼叫或在 Merchant Center 使用者介面中管理設定,您必須授予他們其他角色,例如STANDARDADMIN。如要進一步瞭解 Merchant Center 角色,請參閱「存取類型」。

「API 開發人員」角色有哪些權限?

API Developer 角色在 Merchant Center 中具有最低權限。如要使用開發人員聯絡電子郵件授權呼叫 Merchant API,建議新增 ADMINSTANDARD 權限,讓使用者執行 API 呼叫。

我是否需要為每個呼叫 API 的開發人員使用者或服務帳戶註冊?

否。開發人員註冊程序與用於發出 API 呼叫的 Google Cloud 專案相關聯,而非個別使用者或服務帳戶。Google Cloud 專案向主要 Merchant Center 帳戶註冊成功後,您可以使用透過連結的 Google Cloud 專案管理的任何身分,透過 OAuth 憑證或服務帳戶授權 Merchant API 呼叫,前提是這些身分存在於 Merchant Center 中,且已指派 ADMIN 角色。

完成初始註冊後,如何變更開發人員聯絡電子郵件地址?

如要管理或變更聯絡人,請使用標準 accounts.users 服務,或在 Merchant Center 使用者介面的「存取權和服務」頁面中,新增或移除具有 API Developer 角色的使用者。

如果從 Merchant Center 帳戶中移除最後一位「API 開發人員」使用者,會發生什麼事?

為避免服務立即中斷,系統會啟動 30 天的寬限期。在這段期間:

  • 管理員會收到三封電子郵件,強制執行作業開始前約 30 天、17 天和 4 天各一封,這是服務公告,不得拒收。
  • API 呼叫仍會照常運作。
  • 如果未在寬限期結束前新增 API Developer,系統會封鎖相關聯 Google Cloud 專案的 API 呼叫,並顯示 AUTH_GCP_NOT_REGISTERED 錯誤。

30 天寬限期結束後,系統會封鎖相關聯 Google Cloud 專案的 API 呼叫,並傳回 AUTH_GCP_NOT_REGISTERED 錯誤,直到恢復有效的開發人員聯絡資訊為止。

如果刪除開發人員註冊時使用的 Merchant Center ID,會發生什麼情況?

整合功能啟用期間,請勿刪除用於開發人員註冊的 Merchant Center 帳戶。刪除這個帳戶會立即中斷整合,您也無法再從相關聯的 Google Cloud 專案執行 API 呼叫。

如果必須刪除該 Merchant Center 帳戶,請先呼叫 unregisterGcp 方法安全地移除連結,然後再刪除 Merchant Center ID。如要繼續使用 Merchant API,請在取消註冊目前的 Merchant Center ID 後,立即註冊其他 ID。確認後,再刪除 Merchant Center ID。

特殊用途

特殊用途的常見問題:

我是代理商或第三方開發人員,負責管理多個商家帳戶。設定這項功能的最佳方式是什麼?

第三方開發人員和代理商應維護自己的主要 Merchant Center 帳戶,並將所有 Google Cloud 專案註冊到該集中式帳戶。請勿使用個別商家的帳戶註冊 Google Cloud 專案。

如何註冊 Google 應用程式指令碼?

App Script 通常會在預設的 Google Cloud 專案中執行。你必須向 Merchant Center 帳戶註冊這個預設 Google Cloud ID。API 會自動取得 Google Cloud ID,因此您不需要以參數形式提供。

我可以檢查 Merchant Center ID 是否已註冊至特定 Google Cloud 專案 ID 嗎?

可以。你可以使用 getAccountForGcpRegistration 方法,查看已向特定 Google Cloud 專案註冊的 Merchant Center ID。如要移除 Merchant Center 帳戶的 Google Cloud 專案連結,請使用 unregisterGcp 方法。