Help us understand the problem. What is going on with this article?

[PHP]Amazon SNS を使い、iOS・AndroidへPUSH通知 - SNS設定編 -

More than 1 year has passed since last update.

一般的なPUSH配信ASPはセグメント検索が弱かったり、使いにくかったりします。
自サーバーで配信部分まで構築するのは現実的ではないため、配信部分は外部サービスを使った方が開発工数も抑えられ、安定感も向上します。
API対応しているASPもありますが、APIが利用できるプランを選択すると料金が高額になったりします。

そこでオススメししたのがAmazon SNSです!
他のASPにある開封率集計、A/Bテストなどはありません(自前でやる必要があります)が、圧倒的なのは低コストであることです。
100万通配信しても$0.5となっており、他のASPサービスと比べても雲泥の差となっています。
PUSH配信するのに特化したサービスなので、基本はすべてAPIで実装するため、自社システムとの相性は抜群だと思います。
信頼性や配信速度なども他のASPと遜色はありません。
アプリ側にSDKの導入も不要です。

今回はCMSでユーザー管理をしていて、PUSH配信予約を使いやすいようにカスタマイズして使いたい、ASPでは実現不可能なセグメント検索をやりたい、ついでにコストも抑えたい、という場合の構築方法を解説します。

前提条件など

DBによるユーザー管理をしていて、iOS・Androidに全配信やセグメント配信でPUSH通知を送る場合のPHPでのやり方です。
ほとんどサーバー側の説明です。
アプリ側にはSDKは使用せず、直接SNSにエンドポイントは登録しません。
代わりにPUSH通知トークン登録用APIを用意します。
アプリ側の処理はトークンを付与してAPIにリクエストするだけで、
サーバーからSNSにエンドポイントを登録します。

事前準備

APNsの証明書とGCMのAPI KEYを準備してください。
また、SNS のAPIを利用するため、アクセスキーIDとシークレットアクセスキーをAWSから取得しておいてください。
取得方法がわからなければググってくださいw

Amazon SNSでの設定

プラットフォームアプリケーションの作成

iOS、Androidそれぞれで作成します。
開発用と本番用も別々のアプリケーションになります。

iOS

sns_ios2.png

・アプリケーション名
 アプリ名やiOSや開発か本番など、わかりやすい名前を付けます。
・プッシュ通知プラットフォーム
 今回は開発環境なので、"Apple Development"を選択します。
 本番環境の場合は、"Apple Production"を選択してください。
・プッシュ通知タイプ
 デフォルトの"iOS プッシュ証明書"のままでOKです!
・*p12 ファイルの選択
 用意してあるAPNsのp12ファイルを選択します。
・パスワードの入力
 パスワードを入力して、"認証情報をファイルから読み込み"ボタンをクリックします。
 下にある証明書とプライベートキーに自動入力されればOKです。

Android

sns_android.png

・アプリケーション名
 アプリ名やAndroidや開発か本番など、わかりやすい名前を付けます。
・プッシュ通知プラットフォーム
 "Google Gloud Messaging(GCM)"を選択します。
 iOSのように開発と本番で分かれていません。
・APIキー
 事前に取得したAPIキーを入れます。

sns_app.png

作成が完了すると"アプリケーション ARN"が発行され、エンドポイントの追加やエンドポイント一覧取得に必要となります。

トピックの作成

iOS、Androidそれぞれの全配信用のトピックを作成します。
sns_topic.png

・アプリケーション名
 アプリ名やOSや全配信用のALLや開発か本番など、わかりやすい名前を付けます。
・プッシュ通知プラットフォーム
 未入力のままでOK!

sns_topic_list.png

アプリケーションと同様に今度は"トピック ARN"が発行されます。
トピックにエンドポイントをサブスクライブしたり、トピックに登録されているエンドポイントに一斉PUSH配信するために必要となります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした