メモ > 技術 > サービス: AmazonSNS > AmazonSNS: プッシュ用のサーバーキーや各証明書の登録
■AmazonSNS: プッシュ用のサーバーキーや各証明書の登録
■概要
AndroidとiOSにプッシュを送信できるようになったら、AmazonSNSから一括して送信できるようにする
プッシュを送信するためのキーや証明書を、AmazonSNSに登録することで可能になる
■Firebaseのサーバーキーの取得(Android)
Firebaseのコンソールに追加されている「Push Test1 Dev」にある歯車(設定)のアイコンをクリック
設定画面に遷移するので、タブメニューから「クラウドメッセージング」をクリック
「サーバーキー」の値を確認する
AAAAsNOhnZY:APA91bEp7obtws-R7EoKzv3NhywPdBoxaHW2iFKR4aCtgQtSppooVN-oAXATFUDeGCuPqb7NADe3XVycNWSBvsC8ip4ta_ejWVH-ABCDEFGHIJKLMN-XXXXXXXXXX
■AmazonSNSアプリケーションの作成(Android)
AWSのコンソールから「Simple Notification Service」を開く
左メニューから「プッシュ通知」を開く
画面内、一覧上部の「プラットフォームアプリケーションの作成」をクリック
アプリケーション名: Push-Test1-FCM-Dev(開発版想定。本番なら「Push-Test1-FCM」などとする。iOS用にも作る可能性があるので、単に「Push-Test1」ではなく「FCM」の文字を含めておくのが無難そう)
プッシュ通知プラットフォーム: Firebase Cloud Messaging (FCM)
APIキー: (「サーバーキーの取得」で取得した「サーバーキー」)
「プラットフォームアプリケーションの作成」をクリック
アプリケーション一覧に追加されたことを確認する
■AmazonSNSアプリケーションの作成(iOS)
AWSのコンソールから「Simple Notification Service」を開く
左メニューから「プッシュ通知」を開く
画面内、一覧上部の「プラットフォームアプリケーションの作成」をクリック
アプリケーション名: Push-Test1-APNS-Dev(開発版想定。本番なら「Push-Test1-APNS」などとする。Android用にも作る可能性があるので、単に「Push-Test1」ではなく「APNS」の文字を含めておくのが無難そう)
プッシュ通知プラットフォーム: Apple iOS/VoIP/Mac
サンドボックスでの開発に使用されます: 開発用(Development SSL Certificate)の場合、チェックを入れておく
プッシュ証明書タイプ: iOSプッシュ証明書
証明書: Push-Test1-Dev.p12(先の手順で作成したファイル)
パスワードの入力: (p12ファイル作成時、パスワードをカラで作成したなら空欄)
「認証情報をファイルから読み込み」をクリック
証明書の情報が表示されたことを確認して「プラットフォームアプリケーションの作成」をクリック
※「認証情報をファイルから読み込み」をクリックしたとき
「Apple の認証情報をファイルから読み込んでいるときにエラーが発生しました」
というエラーになる場合、p12のファイル名に日本語を含めていないか、証明書作成時に通称に日本語を含めていないか、などを確認する
その他、原則として半角英数字に統一しておくほうが無難
※Apple Developer Program での作業は、MacのSafariで行うことが推奨されているみたい
どうしても意図した操作ができなければ、MacのSafariで試す
※証明書が壊れていないかなどは、以下のコマンドで確認できる
パスワード入力後、ファイルの情報が表示されることを確認する
$ openssl pkcs12 -in Push-Test1-Dev.p12 -info -noout
Enter Import Password:
MAC Iteration 1
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048
OpenSSL
https://sehermitage.web.fc2.com/crypto/openssl.html
PKCS #12 個人情報交換ファイルフォーマットについて - Qiita
https://qiita.com/kunichiko/items/3e2ec27928a95630a73a
APNsで使うp12形式の証明書、秘密鍵からpem形式の証明書、公開鍵を作成する方法がかなりわかりづらいのでまとめてみました - lineocean.com
https://lineocean.com/2017/10/31/499/
■AmazonSNSトピックの作成(Android端末へ一斉送信するトピックを作成する場合)
トピックを作成してそこに端末を登録しておけば、
トピックを指定するだけでトピックに属する端末すべてにプッシュを送信できる
左メニューから「トピック」を開く
「トピックの作成」ボタンを押すとトピックの作成画面が開く
名前: Push-Test1-FCM-Dev-All
表示名: (SMS用の項目なので空欄)
「トピックの作成」をクリック
トピック一覧に追加されたことを確認する
(表示されるARNの値は、後ほどPHPプログラムに設定する)
トピックのARNを指定するだけで一斉送信ができるので、運用の際は「全端末配信用」のトピックを作っておくといい
後からトピックを追加すると、トピックに対して端末を登録する必要があるので注意
トピックを気軽に増減する設計は避けるほうがいいかも。要検証
■AmazonSNSトピックの作成(iOSへ一斉送信するトピックを作成する場合)
Androidと同じ要領で、以下のトピックを作成する
名前: Push-Test1-APNS-Dev-All
表示名: (SMS用の項目なので空欄)
■AmazonSNSトピックの作成(すべてのデバイスへ一斉送信するトピックを作成する場合)
Androidと同じ要領で、以下のトピックを作成する
名前: Push-Test1-Dev-All
表示名: (SMS用の項目なので空欄)