GoogleのFCM
メッセージングサービスを使用してメッセージを送信しようとしますが、ドキュメントにあるように、httpリクエストは次のようになります。
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
私の問題は、Authorization
の値がどうあるべきかわからず、このヘッダーを削除してリクエストを行うと、エラー401:Unauthorized
。これは何らかのAPIキーか何かでなければならないが、プロジェクトで見つけることができません。誰も私を助けることができますか?
PS:私は現在、テスト目的で このサイト を使用してデバイスにメッセージを送信しています
Firebase Cloud Messaging Serverについて ドキュメントによると:
認証
メッセージを送信するために、アプリサーバーはPOSTリクエストを発行します。例:
https://fcm.googleapis.com/fcm/send
メッセージリクエストは、HTTPヘッダーとHTTPボディの2つの部分で構成されます。
HTTPヘッダーには、次のヘッダーが含まれている必要があります。
許可:key = YOUR_SERVER_KEY
これがserverキーであることを確認してください。このキーの値は、FirebaseプロジェクトコンソールのProject Settings>クラウドメッセージング。クライアントキーまたはその他のキーはFCMによって拒否されます。
コンテンツタイプ:
application/json
for JSON;application/x-www-form-urlencoded;charset=UTF-8
プレーンテキスト。Content-Typeを省略すると、形式はプレーンテキストであると見なされます。
それが役に立てば幸い!
UPDATE(2016/11/16)
次のスクリーンショット内のメモとして、サーバーキーの代わりにFCMトークンの使用を検討する必要があります。
UPDATE(2016/12/08)
Firebaseはサーバーキーを新しいバージョンにアップグレードしたため、最新バージョンにアップグレードすることをお勧めします。以下のスクリーンショットをご覧ください:
私もこのエラーに直面しました。問題はサーバーキーにあります。 google-services.jsonファイルのapiキーを使用しないでください。
クラウドメッセージングタブのプロジェクトキーで、firebaseコンソールプロジェクトのサーバーAPIキーを使用する必要があります。 https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging
これは、[プロジェクト設定]> [クラウドメッセージング]でconsole.developers.google.comまたはFirebaseプロジェクトコンソールで確認できるサーバーキーです。 Googleサービスによって自動的に作成されるキーに注意してください。使用を制限するには、IPアドレスinco G.Consoleを追加する必要があります。
さらに、Content-Type:application/jsonについて覚えておいてください。そうしないと、Error = MissingRegistrationが発生します。