更新:所使用的術語是回服務器密鑰。
就在最近,現在有一個即將推出的Firebase雲消息傳遞令牌(FCM令牌)。這在Firebase控制檯的雲消息傳遞標籤中可見。
更新:現在在GCM docs可見的紙條,上面寫着:
從2016年9月開始的新服務器密鑰只能在火力地堡控制檯創建使用的Cloud Messaging標籤設置面板。需要創建新服務器密鑰的現有項目可以導入Firebase console而不影響其現有配置。
更新:它也似乎從GCM遷移到FCM修復該問題的401未授權錯誤。
如果您剛剛開始使用GCM,而不是在Google Developers Console中創建項目,請在Firebase控制檯中執行該項目。創建項目後,只需使用自動生成的服務器密鑰。下面是在哪裏可以找到服務器的關鍵步驟:
- 轉到您的Firebase Console並點擊創建新項目。
- 填寫您想要的項目名稱並選擇您的國家。在此之後,新項目應該是活躍的。
- 然後在左側面板上,點擊齒輪按鈕並選擇項目設置。
- 然後轉到Cloud-Messaging標籤。
對於老項目GCM,你可以簡單地導入項目到火力地堡控制檯:
- 轉到您的Firebase Console並點擊導入項目。
- 選擇您要導入的項目和您的國家。
- 點擊ADD FIREBASE。在此之後,新項目應該是活躍的。
- 然後在左側面板上,點擊齒輪按鈕並選擇項目設置。
- 然後轉到Cloud-Messaging標籤。
出於某種原因,只有一個服務器密鑰作品現在GCM。 Android密鑰不是唯一一個看起來無效的密鑰,所有其他客戶端API密鑰(瀏覽器,iOS,Android)都是。
當屬於Server Key的描述:
創建,如果你的應用程序運行在服務器上使用服務器密鑰。
由於您在服務器上使用API密鑰,並且它與GCM連接服務器一起工作,因此使用服務器密鑰是合乎邏輯的。
如果比較FCM docs與GCM docs(下憑證),你可以看到,在GCM,它只規定API密鑰,而在FCM,它已經指定一個服務器密鑰。那麼,FCM是GCM的新版本,可能與它有什麼關係?我不太確定,但我認爲你明白了我的意思。
更新:在GCM文檔中,現在指出了服務器密鑰。
默認情況下,通過以下步驟Configure your API Project去後,服務器API密鑰生成(I通過選擇Android應用測試它)。 firebase-cloud-messaging也一樣。每當我創建一個新項目時,它都會自動生成一個服務器密鑰。
希望未來會有解釋爲什麼。
要繼續前進並添加關於如何創建服務器密鑰的步驟。以防萬一其他人感到困惑,或者新手不確定如何。
- 轉到您的Google Developers Console
- 在左窗格中,單擊證書
- 在憑證選項卡,點擊創建憑證
- 選擇API密鑰
--- 更新在Dev elopers控制檯削減步驟這裏 ---
- 選擇服務器密鑰
- 填寫詳細信息。
- 點擊創建
服務器密鑰應由然後可用。
更新:好像有生成API密鑰時,最近的變化。直到上面提到的步驟4爲止。但是,在選擇API密鑰後,它將直接創建API密鑰而不詢問它是什麼類型的密鑰(服務器,Android,瀏覽器,iOS)。它只會允許您設置一些限制根據您打算生成哪個API密鑰,這是可見的。
更新:當沒有任何限制創建API密鑰,它顯示一個通知(感嘆號),你的API密鑰是脆弱的,這就是爲什麼它被非常鼓勵爲你添加您的API密鑰的限制。其中一個post發生此問題,並且添加了限制即可解決該問題。
您是否更新了PHP腳本中的必要憑證?您是否在Google開發者控制檯中包含了您的包名? –
@kumar我更新了我的答案。一探究竟。如果你正在尋找官方理由,似乎還沒有任何披露。 –
嗨@kumar,我今天也遇到類似的問題。自2年來一直運行良好,但自從星期五以來,我開始接受401未經授權的錯誤。嘗試重新生成服務器密鑰,但沒有成功。 你是否設法解決它? – Shubhral