メインコンテンツへスキップ
Google Play StoreでAndroidアプリをダウンロードしたユーザーにプッシュ通知を送信するには、Firebase Cloud Messaging(FCM)Service Account秘密鍵を作成してOneSignalにアップロードする必要があります。
この手順は以下には適用されません:
  • Web Push。 AndroidデバイスはFCM Service Accountなしでウェブサイトやプログレッシブウェブアプリを購読できます。Web pushセットアップを参照してください。
  • Huawei App Gallery経由で配布されるHuaweiアプリ。 Huawei認証を参照してください。

要件


Firebase Service Account秘密鍵を作成する \

1

Firebaseプロジェクトを作成または開く

Firebaseコンソールに移動し、プロジェクトを作成または選択します。
Firebaseコンソールに利用可能なプロジェクトのリストが表示されている
2

Firebase Cloud Messaging API V1を有効にする

プロジェクト設定Cloud Messagingタブを選択します。
Firebase Project settingsのCloud Messagingタブ。Firebase Cloud Messaging API (V1)のステータスはEnabled
**Firebase Cloud Messaging API (V1)**のステータスを確認します:
  • Enabled(緑のチェックマーク)と表示されている場合は、次のステップに進みます。
  • Disabledと表示されている場合は、3点メニュー > Manage API in Google Cloud Consoleをクリックします。Google Cloud ConsoleでEnableをクリックし、緑のチェックマークと「API Enabled」が表示されるまで待ちます。
Google Cloud ConsoleのFirebase Cloud Messaging APIページに、緑のチェックマーク付きのAPI Enabled状態が表示されている
ここで、Firebase Service Accountに必要な権限があるかを確認するのに良いタイミングです:
  • cloudmessaging.messages.create
  • firebase.projects.get
新しく作成されたFirebaseプロジェクトでは、通常、デフォルトのService Accountにこれらの権限が付与されています。確信が持てない場合や古いプロジェクトで作業する場合は、続行する前に確認してください。詳細はService Accountの権限を確認するには?を参照してください。
3

新しい秘密鍵を生成する

Project settingsに戻り、Service accountsタブを選択して、Generate new private keyをクリックします。
Firebase Project settingsのService accountsタブにGenerate new private keyボタンが表示されている
ポップアップでGenerate keyをクリックして確認します。
Service Accountの新しい秘密鍵生成のためのFirebaseの確認ダイアログ
ダウンロードした秘密鍵には機密の認証情報が含まれています。共有したり、バージョン管理にチェックインしたりしないでください。
.jsonファイルを安全な場所に保存します。次のセクションで必要になります。

Service Account秘密鍵をOneSignalにアップロード

OneSignalダッシュボードで:
1

Android設定を開く

**Settings > Push & In-App > Platforms > Google Android (FCM)**に移動します。Activate(初回セットアップ)またはSettings(Androidが既に構成されている場合)をクリックします。
OneSignalのPush & In-App Settingsで、Platformsタブにて、Google Android (FCM)タイルとSettingsボタンが表示されている
2

Service Account秘密鍵をアップロード

Select fileをクリックし、前のセクションで保存した.json秘密鍵を選択します。
OneSignal Google Android (FCM)構成画面、Service Account JSONファイルアップロードフィールドとSelect fileボタン付き
3

保存して続行

Save & Continueをクリックします。OneSignalが秘密鍵を検証し、SDKを選択するセットアップフローの次のステップに移動します。
ダッシュボードにInvalid requestまたは他のエラーが表示される場合、Service Accountに1つ以上の必須ロールが不足している可能性があります。Service Accountの権限を確認するには?を参照してください。
OneSignalアプリがFirebase Cloud Messaging (V1)に接続されました。次に、お使いのSDKに応じてモバイルSDKセットアップに従い、アプリにOneSignalをインストールして初期化してください。

FAQ

Service Accountの権限を確認するには? \

Service Accountの権限は、Firebaseコンソールではなく、Google Cloud Consoleで管理されます。OneSignalにアップロードした秘密鍵に対応するService Accountは、以下の両方を持つ必要があります:
  • cloudmessaging.messages.createFirebase Cloud Messaging API Adminroles/firebasecloudmessaging.admin)によって付与されます。
  • firebase.projects.getFirebase Viewerroles/firebase.viewer)によって付与されます。
Firebase Adminroles/firebase.admin)、EditorOwnerなどのより広範なロールも、両方の権限を含むため、要件を満たします。OneSignal専用のService Accountの場合は、秘密鍵が露出した際の影響を限定するため、上記の狭いペアを優先することをお勧めします。 Service Account秘密鍵をアップロードした後にOneSignalダッシュボードにInvalid requestが表示される場合、ロールの不足が最も一般的な原因です。
1

Google Cloud ConsoleでIAMを開く

Google Cloud Consoleにサインインし、Firebaseアプリに関連付けられたプロジェクトを選択し、IAM and Admin > IAMに移動します。
2

Service Accountを見つける

プリンシパルのメールアドレスを、アップロードした秘密鍵のclient_emailフィールドと一致させます。
3

不足しているロールを追加する

鉛筆(編集)アイコンをクリックし、Add another roleをクリックして、まだ割り当てられていないロールを追加します。
4

保存

Saveをクリックします。IAMの変更が反映されるまで数分かかる場合があります。

「This configuration is for a different Firebase Project」と表示されるのはなぜですか?

このエラーは、アップロードした秘密鍵が別のFirebaseプロジェクト(別のSender ID)に属している場合に発生します。 解決策:元のFirebaseプロジェクトの秘密鍵を使用してください。利用できない場合は、App IDを添えてsupport@onesignal.comに連絡してください。プロジェクトを切り替えるとプッシュトークンがリセットされます。ユーザーは再度プッシュを受信するためにアプリを再度開く必要があります。

Sender IDを変更できますか?

はい、ただし既存のユーザーに影響します。 デバイストークンは元のSender IDに紐付いています。変更すると既存のトークンが無効になります。
ユーザーがアプリを再度開いて新しいトークンを生成するまで、プッシュ通知を受信できなくなります。
サポートが必要な場合は、App IDを添えてsupport@onesignal.comに連絡してください。

OneSignalでSender IDが表示されないのはなぜですか?

FirebaseサーバーキーがAIz...のように見える場合、古いGoogle Cloud Messaging(GCM)設定を使用している可能性があります。新しいFirebaseプロジェクトを作成し、Service Account秘密鍵をアップロードしてください。

FCM V1に切り替えるときにコードを更新する必要がありますか?

アプリやSDKの変更は必要ありません。これはダッシュボードのみの更新です。

FCM V1への切り替え期限はいつですか?

Googleのレガシー FCM APIは現在完全に廃止されました。まだレガシーAPIを使用している場合は、直ちにFCM V1に移行してください

どのアプリがまだレガシーAPIを使用しているか確認するには?

各アプリに対してView an app APIを呼び出し、レスポンスのfcm_v1_service_account_jsonフィールドを確認します:
  • 存在し空でない:アプリはFCM V1を使用しています。
  • 存在しないか空:アプリはFCM V1用に構成されていません。そのアプリがAndroidプッシュを送信している場合、まだレガシーAPIを使用しているため、移行が必要です。
最初にアプリとそのApp IDを一覧表示するには、View apps APIを使用してください。

Firebase Cloud Messagingとは何ですか?なぜOneSignalにはService Account秘密鍵が必要ですか? \

Firebase Cloud Messaging(FCM)は、Androidデバイスにプッシュ通知を配信するGoogleのサービスです。Service Accountは、OneSignalがFirebaseプロジェクトに認証するために使用するGoogleアイデンティティで、その秘密鍵は、そのアイデンティティを証明するJSONファイルです。秘密鍵をアップロードすると、OneSignalがあなたに代わってFirebase経由でプッシュを送信することを許可します。詳細は、GoogleのService Accountドキュメントを参照してください。

関連ページ

モバイルSDKセットアップ

AndroidアプリにOneSignal SDKをインストールして初期化します。

モバイルプッシュセットアップ

Android、iOS、その他のモバイルプラットフォーム向けのプラットフォーム固有のセットアップ手順。

Huaweiプッシュセットアップ

Huawei App Gallery経由で配布されるHuaweiアプリへのOneSignalのプッシュ送信を承認します。

Web pushセットアップ

ウェブサイトのプッシュ通知を構成します。