製作最佳做法

Google 建議您在管理及執行應用程式時,採用下列最佳做法。

保護 API 金鑰

您需有 API 金鑰才能使用我們的線上服務,且服務用途可讓 Google 計算您的用量。建議您限制 API 金鑰,防止未經授權的使用行為。

API 金鑰限制的類型

API 金鑰限制分為兩種類型,您可以同時使用。

限制類型金鑰用途限制為
API 限制 特定 API。
應用程式限制 特定的 IP 位址、網站或應用程式。

API 金鑰限制建議

建議您針對下列情境使用不同的 API 金鑰。

情境建議
您的後端遊戲伺服器會呼叫 Playable Locations API,藉此擷取可播放的位置。 設定具有兩項限制的金鑰:
  • API 限制:僅允許呼叫 Playable Locations API。
  • 應用程式限制:僅允許來自後端遊戲伺服器 IP 位址的呼叫。
您應用程式的 Android 版本會呼叫 Maps SDK for Unity 來擷取地理區域資料。 設定具有應用程式限制的金鑰,僅允許來自 Android 版本的呼叫。
您的應用程式 iOS 版本會呼叫 Maps SDK for Unity API 來擷取地理區域資料。 設定具有應用程式限制的金鑰,僅允許來自 iOS 版本的呼叫。

詳情請參閱「API 安全性最佳做法」。

設定 API 金鑰限制

  1. 前往 Google Cloud 控制台的憑證面板
  2. 選取要設定限制的 API 金鑰,畫面隨即顯示 API 金鑰屬性頁面。
  3. 在「金鑰限制」下方,選取「應用程式限制」分頁標籤,然後選取四種應用程式限制類型的其中一個。
    限制類型 說明
    HTTP 參照網址 接受由您提供的網站清單中所列的要求。
    IP 位址 接受由您提供的網路伺服器 IP 位址清單中所列的要求。
    Android 應用程式 新增套件名稱和 SHA-1 簽署憑證指紋,即可限制 Android 應用程式的使用活動。
    iOS 應用程式 iOS 應用程式軟體包 ID 必須與您提供的 ID 吻合,才接受該應用程式送出的要求。
  4. 在「金鑰限制」下方,選取「API 限制」分頁標籤,然後選取您要限制 API 金鑰的 API。
  5. 按一下「Save」

支援 API 金鑰更新

請確認您具備基礎架構,可以更新整個服務堆疊中的 API 金鑰。這樣一來,遊戲就能在 API 金鑰遭駭時復原,且您需要在短時間內更新金鑰。

為每個應用程式使用不同的金鑰,這樣即可輕鬆替換其中一個金鑰,而不會影響其他應用程式。

遊戲伺服器安全性建議

Playable Locations API 伺服器如果因任何原因服務中斷,恢復連線時就會發生問題,也就是多個遊戲伺服器同時嘗試重新連線。這樣的 QPS 尖峰時,可能會將伺服器傳送至 DoS 模式,進而封鎖連入流量來減輕情況。

為減少這種情況,Google 會要求您在遊戲伺服器上實作二元指數輪詢。這是在連線重試之間間距的方法。具體來說,您實作的演算法會在嘗試重新連線失敗後等待 N 秒,然後再試一次。如果下次嘗試失敗,演算法會「加倍」等候時間,然後再次嘗試。如果下次嘗試失敗,演算法會再次加倍等候期,然後再試一次。每次嘗試後,等待期會持續加倍,直到最後一次嘗試成功為止。

處理 HTTP 傳回狀態碼

您應該針對部分 HTTP 傳回碼實作二進位指數輪詢作業,但並非全部。

400 秒
這些是用戶端錯誤通常無法復原,因此重試產生此錯誤代碼的失敗要求並不會發揮作用。您應在測試期間找出這類錯誤。
429
這是您開始 API 配額用盡時發生的資源已用盡錯誤。如要查看專案的 API QPS 限制,請參閱 Google API 配額頁面。
500 秒
這些是伺服器端錯誤,最適合使用指數輪詢的錯誤類型。