はじめに
Webプッシュ実装中に、新規にAPIキー取得しようとしてハマったのでメモ
ことのはじまり
Webプッシュ実装中に、新たに Google Developers Console からAPIキーを取得してプッシュをしてみたら
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
※curlを叩いてpushを実行
なんかエラー返ってきたので、curlの構文を変えてみたり色々試行錯誤した末、数日前に作ったAPIキーでプッシュを実行してみた
{"multicast_id":7315148804687651052,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
※無効なregistration_idsで叩いるので、このエラーが出ます
これはちゃんとjsonでエラーが返ってきます
おかしい
ということで
APIキー周りに限定してググってみた
GCMのAPIキーまわりについてググる
『GCM APIキー 仕様変更』
とかでググると
FCM (Firebase Cloud Messaging)
とかいう単語がでてくる
もしかしてこれが関係あるのかなー
と思ってFCMにも関連付けて調べていると
Amazon SNS: “Platform credentials are invalid” when re-entering a GCM API key that previously worked
Androidの新プッシュ通知FCMへの移行
この辺に行き着きまして
『プロジェクト管理が Developer console から Firebase console に変更になります。』
ほう?
結果
Firebase consoleで作ったAPIキーで送れました。
たしかに、Developer consoleからAPIキー作ろうとした時に数日前までキーの種類選ばされてたのに、今は選ばずに作られます。
仕様変更入ったところにもっと早く気付けばよかった。
まとめ
GCM用にとるAPIキーはこれからFirebase consoleからつくります