Flutter で Pinpointのプッシュ通知の設定方法 (FCM , APNs)

# はじめに
flutterでpinpointのプッシュ通知を設定する上で、`Firebase Cloud Messaging (FCM)`や、`Apple Push Notification service (APNs)`を設定する箇所があったため、その方法をまとめます。

![スクリーンショット 2022-05-15 20.18.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/d2d8c574-c6ae-50cd-0b22-cc1ecee9079f.png)



# Pinpoint プロジェクトを作成
プロジェクト名を`test`とし、作成します。
左タブの`設定→プッシュ通知`をクリックします。
![スクリーンショット 2022-05-15 20.13.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/45a3c428-f8e7-2304-7aeb-ba9a331ca260.png)

# FCMの設定
APIキーの設定が必要ですね。

![スクリーンショット 2022-05-15 20.15.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/40c7822d-a282-152e-a3d2-f74e8548c462.png)

Firebase Consoleから、プロジェクトの設定をクリックします。
![スクリーンショット 2022-05-15 20.23.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/5cfebf18-fad9-2c9e-3105-985810ca6fe4.png)

`Cloud Messaging API（レガシー）`のサーバーキーを追加をクリックすると`サーバーキー`ができるため、コピーします。
![スクリーンショット 2022-05-15 20.24.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/4be6dc80-deed-6712-caa2-4b5c3fb0c591.png)
pinpointの方に、`サーバーキー`を貼り付け、保存すると、`FCM`の設定完了します。
![スクリーンショット 2022-05-15 20.15.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/40c7822d-a282-152e-a3d2-f74e8548c462.png)

# APNsの設定


今回は、認証タイプ`キー認証情報`で設定します。以下4つを設定します。
- キーID
  - 署名キーに割り当てられた ID
- バンドル識別子
    -  iOS アプリケーションに割り当てられた ID
- チーム識別子
    - Apple 開発者アカウントチームに割り当てられた ID。
- 認証キー (.p8 ファイル)
    - 認証キーを作成するときに Apple デベロッパーアカウントからダウンロードする .p8 ファイル。

![スクリーンショット 2022-05-15 20.31.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/6fce3776-6a97-3d04-1338-626b2ac2e295.png)

Apple Developer にログインしておきます。

https://developer.apple.com/jp/

## APP IDの作成
APP IDを作成していない場合、こちらの記事を参考に作成します。

https://docs.repro.io/ja/dev/sdk/push-notification/setup-ios.html#app-id


## キーIDと認証キー
認証キーをダウンロードし、キーIDを取得します。

認証キーは、`Certificates, IDs & Profiles`の`Keys` に遷移し、`Keys`をクリックします。
![スクリーンショット 2022-05-15 20.40.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/103f0c81-339c-a6c6-50ba-1fe9bcef535a.png)
APNs認証キーの作成画面に遷移し、`任意のキーの名前`と`APNs`にチェックを入れてます。
![スクリーンショット 2022-05-15 20.46.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/0146109a-1110-f7e7-fa75-76eccaef07e0.png)

鍵は、1回だけダウンロードできるので、APNs認証キーをファイルをダウンロードします。
また、`KeyID`をコピーしておきます。
![スクリーンショット 2022-05-11 16.07.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/723f8c3e-21ef-b0f1-9fdf-a77689be9006.png)


## チーム識別子

`Membership`から確認できます。
![p8-teamID.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/8ea69f28-3f4c-5672-f65a-751f0cb31fc7.png)

## Firebase Consoleで設定
Firebase Consoleで、`認証キー`をアップロードし、`キーID`、`チームID`を入力し、保存します。
![スクリーンショット 2022-05-15 20.49.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/233c1c61-424a-9cae-c610-4447f59955ee.png)

## バンドル識別子
`identifiers`に遷移し、作成した`INDENTIFIER`をクリックします。
![ios-ad-hoc-distribution-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/94d0b528-2d31-5e28-da13-8334b3e5e965.png)

`Bundle ID`をコピーします
![スクリーンショット 2022-05-15 21.20.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/59579983-85e1-b8dc-8803-027d6c218a6e.png)

上記の4つの内容をpinpointのプッシュ通知設定に反映し、保存をクリックすると反映されます。
![スクリーンショット 2022-05-15 20.31.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2612883/6fce3776-6a97-3d04-1338-626b2ac2e295.png)

# 参考

https://docs.aws.amazon.com/ja_jp/pinpoint/latest/userguide/settings-push.html

https://qiita.com/KenNagami/items/c5818e1821e0063f6825

https://docs.repro.io/ja/dev/sdk/push-notification/setup-ios.html#app-id