製作最佳做法

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. 按一下「儲存」

支援 API 金鑰更新

確認已有適當的基礎架構,可更新整個供應堆疊的 API 金鑰。這麼一來,您的遊戲就能在 API 金鑰遭駭時復原,且您需要在短時間內更新金鑰。

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

遊戲伺服器安全性建議

如果 Playable Locations API 伺服器因任何原因而中斷服務,就會在恢復連線時發生問題,也就是多部遊戲伺服器同時嘗試重新連線。假使 QPS 用量暴增,伺服器可能會進入 DoS 模式,並會封鎖傳入流量,讓情況更加複雜。

為減緩這種情況,Google 會要求您在遊戲伺服器上實作二進位指數輪詢。此為系統化的方法,可加快連線重試速度。具體而言,您必須實作演算法,在嘗試重新連線失敗後等待 N 秒,然後再試一次。如果下次嘗試失敗,則演算法會將等待期加倍,然後再次嘗試。如果下次嘗試失敗,則演算法會再次加倍等候期,然後重試。每次嘗試失敗後,您會繼續將等待期增加一倍,直到最後嘗試成功為止。

處理 HTTP 傳回狀態碼

您應對部分 HTTP 傳回代碼實作二元指數輪詢,但並非全部。

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