プッシュ通知したかった
普段は社内用のシステム開発を担当してます。
ある日「社内のメンバーが気づけるように、内部向けの通知機能を開発して欲しい」という要望をいただきました。
・・・頑張ります!ということでWebとAndroidにはFCMからプッシュ通知できるようにして解決しました!!!!!!!!
・・・と思ったらおやおや?iPhoneでも受け取りたい?
いやいや、一筋縄ではいかないのですよ。
iPhoneはわがままなので、APNsで証明書を発行した端末でしか通知を受け取れないんですよ;;;;
と半泣きになったので、代替え案をたくさん調べたのでメモに残しておきます。
Slackで通知?
- 通知したくなったらSlackでお知らせしてあげる方法です
メリット
- 追加の費用を発生させずに通知を送ることができます
- 全デバイスに対応可能で開発工数も極小です
- 新たにアプリのインストール作業が不要です
デメリット
- 気づけないから嫌だと言われました
- 大量に通知を流す都合上、Slackのrate limitで送信が制限される可能性があります
- 明確な基準はないが、公式によると秒間1通で短時間ならバースト可能程度の記載がありました
- 現在の運用上、Slackでメンションがあっても気づかないパターンがあります
- ユーザが増減する度に個人Slackチャンネルを追加・削除した上でシステム上で作業する管理・運用工数が発生します
ネイティブアプリを開発して限定配布?
- 通知を受け取るためだけのネイティブアプリを開発する方法です(FCM→受信用アプリ)
- 審査を通さなければどんなアプリでも良いよね、という発想w
メリット
- 通信制限にかかる恐れがないです
- 利用ユーザが増えても月額の費用がほぼブレない
- 将来的な機能拡張が見込めます
デメリット
- 限定配布するため、100台までか、Apple の Enterprise 登録する必要があります
- iPhoneはアプリのインストール作業が必要です
メールアプリの受信設定で通知?
- iPhoneにデフォルトでインストールされている連絡帳アプリとメールアプリでVIP設定をしておくと、特定のアドレスからの受信時だけ端末にプッシュ通知を飛ばすことができます(SMS)
メリット
- メールの機能が使えるようになるので、通知の種類がたくさんある場合は分類分けして集計することが可能です
デメリット
- 送信用のドメインを管理する必要があります
- フィルターをかけたり設定をうまくしないと、受信箱が大変なことになります
- プッシュ通知を押したら指定のURLに飛ばす、といったことはできません
IFTTTアプリ?
IFTTTというサービスとサービスを連携してくれるサービスのwebhookでNotificationを発動させるイベントを作成する方法です。もしWebhookを叩かれたら、URLKeyを指定した端末にプッシュ通知してーというイベントを作成すると通知させることができます
メリット
- 無料で何通でもプッシュ通知を送信できます
- 実際に、1日で1500通飛ばしてみたんですが問題ありませんでした
デメリット
- 100通を一斉送信すると、途中の60件以降が届かないことがあってエラーにもなってないから不思議?ってことがありました→特にエラーは出ないため、連続で何通も確実に届けたい時は不向きかも
- IFTTTアプリをダウンロードする必要があります
- 以前は作成したイベントをシェアする機能がありましたが、数年前からなくなってしまったので、「WebhookがきたらNotificationを発動させる」というイベントの設定を、プッシュを受け取りたい全員が設定する必要があります
外部サービスの利用?
メリット
本業に専念できます
デメリット
- お高い。月額50,000円や、通数によって〜50万件:39800円などと料金が変動するプランのサービスもありました。まとまっているサイトを発見しました。これ以外にもたくさんサービスがあるみたいです。https://liskul.com/push-notification-25520
- 内製化したい場合は不向きです
SMSで通知っぽく見せかける?
メリット
- 全デバイスで対応可能です
- アプリのインストール作業が不要です
デメリット
- 1通が高い!AWSの場合で見ると1通訳10円くらい→https://aws.amazon.com/jp/sns/sms-pricing/
Softbank Mobile Corp / 440 000 $0.08575
Softbank Mobile Corp / 441 001 $0.09792
iPhoneにプッシュ通知送るだけなのにこんなに大変なんて思ってませんでした;
最終的にどうするかはまだ決まっていないので、引き続き頑張ります><