質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1737閲覧

イベント駆動(?)のプッシュ通知の実装

ia_isier

総合スコア29

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2015/07/23 13:05

閲覧いただきありがとうございます。

表題で合っているのかわかりませんが、
イベント駆動で送信するプッシュ通知の実装方法について質問させてください。

ここでいうイベント駆動とは、
Twitterアプリでいう「フォローされた時」「RTされた時」などに送られる通知のことを指しています。

イベント駆動ではない通知(こちらからクライアント全体にまとめて送るようなもの)はサーバーサイドスクリプトからAPNS経由で送信するイメージはつくのですが、
イベント駆動のプッシュ通知の実装方法がいまいちうまくイメージできません。

イベント発生時(例えばフォローされた時)に、同時にプッシュ通知を送信するようなスクリプトを叩いたりすればいいのでしょうか?

曖昧な質問で恐縮ですが、ご回答いただけますと嬉しいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Stripe

2015/07/23 14:08

これはクライアント側の話ですか?それともサーバ側の話ですか?
ia_isier

2015/07/23 14:17

おそらくサーバ側の話になる…のかと思います。 要領を得ない回答で申し訳ありません。 クライアントとサーバ、それぞれでどういうコードを書けばいいのかではなく、 (恐らく様々な実装パターンがあるのだと思いますが…) 実装全体のフローが知りたくて質問させていただきました。 ご確認よろしくお願いします。
guest

回答1

0

「イベント駆動ではない通知(こちらからクライアント全体にまとめて送るようなもの)はサーバーサイドスクリプトからAPNS経由で送信するイメージはつく」とのことですが、流れとしてはそれとたいして変わらないように思います。

もしかしたら勘違いされているのかもしれませんが、APNS経由でプッシュ通知できるのは常にクライアント全体というわけではありません。サーバーはプッシュ通知を希望する端末からデバイストークンをもらっているので、特定の端末のデバイストークンだけを指定してAPNSに依頼すれば、その端末だけに通知できます。(全てのクライアントに通知しているのは、その処理で全てのデバイストークンに対して通知依頼しているケースです。)

つまり、「フォローされた時」や「RTされた時」にその利用者の端末に通知を送りたいのであれば、ユーザーアカウントとデバイストークンを紐付けてサーバーで管理し、サーバー側で「フォロー」や「RT」を検出したら、そのユーザに対応するデバストークンを取得し、そのデバイストークンを指定してAPNSにプッシュ通知依頼すればよいだけのように思います。

http://www.lancork.net/2013/08/how-to-ios-push-second/
で紹介されているapns-phpがどのようにデバイストークンを処理しているかを調べれば、おそらく理解が深まるのではないかと思います。

投稿2015/07/25 02:40

TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ia_isier

2015/07/25 11:44

ご回答ありがとうございます! 丁寧な説明で非常に理解しやすかったです。 重ねての質問で恐縮ですが、 > サーバー側で「フォロー」や「RT」を検出したら、〜 この検出について質問させてください。 例えばフォロー処理の場合、 フォロー処理のリクエストがクライアントから送られてきたタイミングで、サーバ側でそのリクエストを処理すると同時に個別のデバイストークンを指定してAPNSに通知依頼をするスクリプトを実行する、 といったイメージで合っていますでしょうか…?
TakeOne

2015/07/25 15:22

はい。そのようなイメージで問題ないと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問