製作最佳做法

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 秒
這些是伺服器端錯誤,指數輪詢最適用於這種錯誤。