android messaging教學 - GCM的API密鑰突然無效? 未經授權(401)錯誤



messaging費用 firebase (3)

這對你來說可能很奇怪,但這就是為我解決的問題 ......

在我的後端,...這個產生了錯誤..

$Key = 'someKey';

這一個解決了錯誤..

$Key = "someKey";

我為我的Android應用程序創建了一個用於GCM推送通知的Android API密鑰。從過去兩天開始,GCM服務器在PHP中返回Unauthorized(401)響應。

Android API密鑰是否有任何原因無效/過期? 或者GCM是否棄用了Android API密鑰?

我還沒有得到關於為什麼Android API密鑰無效的正確解釋? 他們中的大多數人更喜歡使用服務器密鑰而不是GCM的Android API密鑰,但沒有提到為什麼不使用Android API密鑰。

為什麼不在GCM中使用Android API Key? Android API密鑰有任何限制嗎? 或者,如果通知消息超過每日限制,GCM服務器是否會阻止通知/ GCM服務器使Android API密鑰無效?


更新 :正在使用的術語是返回服務器密鑰

就在最近,現在正在推出Firebase雲消息傳遞令牌 (FCM令牌)。 這在Firebase控制台的Cloud Messaging選項卡中可見。

更新GCM文檔中現在有一個明顯的說明:

從2016年9月開始,只能使用“設置”面板的“ 雲消息傳遞”選項卡在Firebase控制台中創建新的服務器密鑰。 可以在Firebase控制台中導入需要創建新服務器密鑰的現有項目,而不會影響其現有配置。

更新 :似乎從GCM遷移到FCM修復了401 Unauthorized Error的問題。

如果您剛剛開始使用GCM ,而不是在Google Developers Console中創建項目,請在Firebase控制台中執行此操作。 創建項目後,只需使用自動生成的服務器密鑰。 以下是查找服務器密鑰的步驟:

  1. 轉到Firebase控制台 ,然後單擊“ 創建新項目”
  2. 填寫您想要的項目名稱並選擇您的國家/地區。 在此之後,新項目應該是活躍的。
  3. 然後在左側面板上,單擊齒輪按鈕並選擇“ 項目設置”
  4. 然後轉到Cloud-Messaging選項卡

對於舊的GCM項目 ,您只需將項目導入Firebase控制台:

  1. 轉到Firebase控制台 ,然後單擊IMPORT PROJECT
  2. 選擇要導入的項目和您所在的國家/地區。
  3. 單擊ADD FIREBASE 。 在此之後,新項目應該是活躍的。
  4. 然後在左側面板上,單擊齒輪按鈕並選擇“ 項目設置”
  5. 然後轉到Cloud-Messaging選項卡

出於某種原因,現在只有一個服務器密鑰可用於GCM。 Android Key並不是唯一似乎無效的,所有其他客戶端API密鑰(瀏覽器,iOS,Android)都是。

當涉及Server Key的描述時:

如果應用程序在服務器上運行,請創建並使用服務器密鑰。

使用服務器密鑰是合乎邏輯的,因為您在服務器上使用API​​密鑰,並且它正在使用GCM連接服務器。

如果將FCM文檔GCM文檔 (在憑據下)進行比較,則可以看到在GCM中,它僅表示API密鑰,而在FCM中,它已指定服務器密鑰。 那麼,FCM是GCM的新版本,可能與它有關嗎? 我不太確定,但我認為你得到了我所說的要點。

更新 :在GCM文檔中,現在指示了服務器密鑰。

默認情況下,在完成配置API項目步驟後,將生成服務器API密鑰(我通過選擇Android應用程序對其進行了測試)。 firebase-cloud-messaging 。 每當我創建一個新項目時,它只會自動生成一個服務器密鑰。

希望將來能解釋原因。

繼續前進並添加有關如何創建服務器密鑰的步驟。 以防其他人感到困惑,或者新手不確定如何。

  1. 轉到您的Google Developers Console
  2. 在左窗格中,單擊“ 憑據”
  3. 在“憑據”選項卡下,單擊“ 創建憑據”
  4. 選擇API密鑰

--- 開發人員控制台中的更新切斷了這裡的步驟 ---

  1. 選擇服務器密鑰
  2. 填寫詳細信息。
  3. 單擊“ 創建”

那時服務器密鑰應該可用。

更新 :生成API密鑰似乎最近發生了變化。 直到我上面提到的第4步,它才一樣。 但是,在您選擇API密鑰後,它將直接創建API密鑰,而不會詢問它是什麼類型的密鑰(服務器,Android,瀏覽器,iOS)。 它只允許您根據要生成的API密鑰設置一些可見的限制

更新 :在創建沒有限制的API密鑰時,它會顯示您的API密鑰易受攻擊的通知(感嘆號),這就是為什麼強烈建議您為API密鑰添加限制 。 有一個post有這個問題,並且添加限制能夠解決它。


此鏈接可能對您有所幫助。 嘗試檢查清單中的問題。 如果可以再次發生,請發布整個堆棧跟踪,以便我們可以看到實際的錯誤。

編輯:我相信你已經檢查過這個,但是你用於TourActivity佈局的XML文件的第12行是什麼?





android firebase google-cloud-messaging firebase-cloud-messaging