この手順は以下には適用されません:
- Web Push。 AndroidデバイスはFCM Service Accountなしでウェブサイトやプログレッシブウェブアプリを購読できます。Web pushセットアップを参照してください。
- Huawei App Gallery経由で配布されるHuaweiアプリ。 Huawei認証を参照してください。
要件
- Google Play Store経由で配布されるAndroidアプリ
- OneSignalアカウント
- Firebaseアカウント(無料)
cloudmessaging.messages.createおよびfirebase.projects.get権限を持つFirebase Service Account秘密鍵- 持っていない場合は、以下の手順に従ってFirebase Service Account秘密鍵を作成してください
- すでに秘密鍵がある場合は、既存の権限を確認してください
Firebase Service Account秘密鍵を作成する \
Firebaseプロジェクトを作成または開く
Firebaseコンソールに移動し、プロジェクトを作成または選択します。

Firebase Cloud Messaging API V1を有効にする
プロジェクト設定でCloud Messagingタブを選択します。
**Firebase Cloud Messaging API (V1)**のステータスを確認します:

- Enabled(緑のチェックマーク)と表示されている場合は、次のステップに進みます。
- Disabledと表示されている場合は、3点メニュー > Manage API in Google Cloud Consoleをクリックします。Google Cloud ConsoleでEnableをクリックし、緑のチェックマークと「API Enabled」が表示されるまで待ちます。

ここで、Firebase Service Accountに必要な権限があるかを確認するのに良いタイミングです:
cloudmessaging.messages.createfirebase.projects.get
Service Account秘密鍵をOneSignalにアップロード
OneSignalダッシュボードで:Android設定を開く
**Settings > Push & In-App > Platforms > Google Android (FCM)**に移動します。Activate(初回セットアップ)またはSettings(Androidが既に構成されている場合)をクリックします。

OneSignalアプリがFirebase Cloud Messaging (V1)に接続されました。次に、お使いのSDKに応じてモバイルSDKセットアップに従い、アプリにOneSignalをインストールして初期化してください。
FAQ
Service Accountの権限を確認するには? \
Service Accountの権限は、Firebaseコンソールではなく、Google Cloud Consoleで管理されます。OneSignalにアップロードした秘密鍵に対応するService Accountは、以下の両方を持つ必要があります:cloudmessaging.messages.create— Firebase Cloud Messaging API Admin(roles/firebasecloudmessaging.admin)によって付与されます。firebase.projects.get— Firebase Viewer(roles/firebase.viewer)によって付与されます。
roles/firebase.admin)、Editor、Ownerなどのより広範なロールも、両方の権限を含むため、要件を満たします。OneSignal専用のService Accountの場合は、秘密鍵が露出した際の影響を限定するため、上記の狭いペアを優先することをお勧めします。
Service Account秘密鍵をアップロードした後にOneSignalダッシュボードにInvalid requestが表示される場合、ロールの不足が最も一般的な原因です。
Google Cloud ConsoleでIAMを開く
Google Cloud Consoleにサインインし、Firebaseアプリに関連付けられたプロジェクトを選択し、IAM and Admin > 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を使用しているため、移行が必要です。
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セットアップ
ウェブサイトのプッシュ通知を構成します。


