8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FCMでPush通知をテスト送信する

Posted at

方法

  1. FCMの管理コンソールから送信する
  2. FCMのAPIを使って送信する

FCMの管理コンソールから送信する

@toshi586014 さんの Firebaseの管理画面からプッシュ通知を送る方法 記事が参考になります。

自分がつまづいたところ

デバイストークンの入力位置がわからなかった

image.png

デバイストークンを入力した後、そのまま全体送信の設定を続けていた

  • 【正解】上記の、デバイストークンの入力後に、「テスト」ボタンを押したらすぐに送信される。
  • 【つまづき】「テスト」ボタンを押しても通知は届かなかったので、その後、画面の指示に従って、②ターゲット→③スケジュール…と設定して進めようとしてしまった。

image.png

テスト送信時にカスタムデータを送信する方法がわかりずらい

  • 上記画像の①~⑤で設定した内容がテスト送信に反映される。
  • なのでテスト送信する時は①~⑤を入力してから、「テストメッセージを送信」からデバイストークンを入力して、「テスト」ボタンを押したら即送信される。

image.png


FCMのAPIを使って送信する

@nishi-sankosc さんの [FCM HTTP v1 APIを使ってWeb Push送信]
(https://qiita.com/nishi-sankosc/items/b9040ee57e6b7223ff21) の記事がとても参考になりました。

Firebase公式

https://firebase.google.com/docs/cloud-messaging/auth-server?hl=ja
https://firebase.google.com/docs/cloud-messaging/send-message?hl=ja

curl

curl -X POST -H "Authorization: Bearer [OAuth 2.0 アクセス トークン]" -H "Content-Type: application/json" -d '{
"message":{
   "notification":{
     "title":"FCM Message",
     "body":"This is an FCM Message"
   },
   "token":"[デバイストークン]"
}}' https://fcm.googleapis.com/v1/projects/[送信者ID]/messages:send

OAuth 2.0 アクセストークンの取得

1: https://firebase.google.com/docs/cloud-messaging/auth-server?hl=ja#provide-credentials-manually
に書いてある方法で鍵を取得。
2: @nishi-sankosc さんの [FCM HTTP v1 APIを使ってWeb Push送信]
(https://qiita.com/nishi-sankosc/items/b9040ee57e6b7223ff21) の記事にあるgetAccessToken.jsを使って取得。

デバイストークン

WIP

送信者ID

Firebaseプロジェクトの設定 > Cloud Messaging > プロジェクト認証情報 に記載あり。

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?