Quantcast
Channel: Postmanタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 470

SDKを使わずにPostmanだけでFCMのPush通知のテスト送信をしてみる(OAuth2対応)

$
0
0
はじめに この記事で紹介するもの Postmanの設定 GoogleAPIの認証設定 この記事で紹介しないもの Firebaseプロジェクトの作成 アプリ側プッシュ通知の受信設定 背景 以前のFCM HTTP API サーバーキーを使い回したプロトコル。  → サーバーキーが漏洩した場合、キーを変えない限り悪用され続ける。 これからのHTTP v1 API OAuth2 セキュリティ モデルに準じたよりセキュアなプロトコル。  → アクセストークンが漏洩した場合、悪用される時間は1時間程度。 FCM HTTP APIからHTTP v1 APIに以降した際、以前はサーバーキーを使い回してPostmanでPush通知の確認していましたが、これからはアクセストークンを取得してヘッダーに差し込む作業が必要になりました。 公式にAdmin SDKを利用してアクセストークンを取得する方法サンプルコードが紹介されていました。 サンプルコード(nodejs) function getAccessToken() { return new Promise(function(resolve, reject) { const key = require('../placeholders/service-account.json'); const jwtClient = new google.auth.JWT( key.client_email, null, key.private_key, SCOPES, null ); jwtClient.authorize(function(err, tokens) { if (err) { reject(err); return; } resolve(tokens.access_token); }); }); } しかし、Push通知のテスト送信をするために言語の導入やソースコードの管理が増えてしまうのは、使い勝手が悪いなと感じました。 本記事は 言語の導入不要! SDKを使用したサンプルコード不要! Postmanのみで完結する設定方法の紹介となります。 導入 前提条件 Firebaseプロジェクトが作成済み サービス アカウント用の秘密鍵ファイルを取得済み 導入の流れ GoogleAPI OAuth同意画面の作成 Postman Authorizationの設定 1. GoogleAPI OAuth同意画面の作成 まずはOAuth同意画面に遷移します。 Firebaseコンソールより 「プロジェクトの設定」 > 「サービス アカウント」 > 「サービス アカウント権限の管理」 GCPに遷移したらメニューより「APIとサービス」>「OAuth 同意画面」 ① OAuth同意画面 User Type「外部」を選択して「作成」 認証済みドメインに「getpostman.com」を追加 > 「保存して次へ」 ちなみに、「ユーザーサポートメール」は後述で出てくる同意画面でアクセス拒否された場合に、「管理者にお問い合わせください(メールアドレス)」の表示で利用されるものになります。 ② スコープ 「スコープを追加または削除」 フィルタにFirebase Cloud Messaging API で絞り込む Firebase Cloud Messaging API にチェックをつける 「更新」 非機密のスコープに追加されたら、「保存して次へ」 ③ テストユーザー Postmanでアクセストークンを取得する際にGCPにログインするユーザーを登録します。(※上限100人) 「ADD USERS」 テスト送信するユーザーのメールアドレスを登録 「追加」 テストユーザーを追加したら「保存して次へ」 ④ 概要 「ダッシュボードに戻る」 ⑤ 認証情報の取得 Postmanからアクセスする際の認証情報を取得します。 左メニューの認証情報より OAuth2.0 クライアントIDのうち 「Web Client」の編集ボタンを押します。 以下の情報を控えてください。 ① クライアントID ② クライアント シークレット ③ 承認済みのリダイレクトURI 2. Postman Authorizationの設定 Postmanを起動し、コレクションの「Authorization」を開きます。 Authorizationの設定 トークン取得時の認証情報を設定します。 Type: OAuth 2.0 Callback URL: ③承認済みのリダイレクトURI Auth URL: https://accounts.google.com/o/oauth2/auth Access Token URL: https://oauth2.googleapis.com/token Client ID: ①クライアントID Client Secret: ②クライアント シークレット Scope: https://www.googleapis.com/auth/firebase.messaging ← MESSAGING_SCOPE アクセストークンの取得 上記の「Get New Access Token」を押します。 すると、Googleのログイン画面がポップアップしますので、前述で登録したテストユーザーでログインします。 権限周りの許可を求めてくるので許可をするとアクセストークンを取得することができます。 Access TokenのAvailable Tokensより「googleapi-oauth2」を選択すると、アクセストークンの反映が完了します。 確認 各リクエストのHeadersを確認すると、既にhidden headerにAuthorization: Bearer ya29...とアクセストークンが反映されていることが確認できます。 無事、Push通知の送信に成功しました。 補足 テストユーザーに追加していないアカウントでログインすると、権限がなくエラーとなります。 この時、前述で登録したユーザーサポートメールに問い合わせる旨のメッセージが表示されます。 終わりに SDKを使うという手間を省いてみたけれども、テストユーザーの追加というプロセスが増えたので、テスターが変わったらテストユーザーのアカウントを追加するといった管理が新たに発生しました。 使い勝手が良くなったかどうかは...

Viewing all articles
Browse latest Browse all 470

Trending Articles