Elixirでのモバイル通知でpigeonを使う
Published in
3 min readJul 22, 2018
どうも株式会社UNDEFINEDのエンジニアインターンのしているている(@Taillook)です
はじめに
モバイルアプリには通知が必要不可欠です.今回はAndroid,iOS両対応の通知ライブラリを探してpigeonというライブラリが使いやすそうだったのでこれを使うことにしました.
使ってみる
フレームワークはPhoenixを使っています
pigeonのインストール
mix.exsに以下を記述.
def deps do
[
{:pigeon, "~> 1.2.2"},
{:kadabra, "~> 0.4.2"}
]
end
※kadabraはpigeonの用のhttp2クライアント
mix deps.get
でインストール
iOSの通知
設定
config.exsに以下を記述.
config :pigeon, :apns,
apns: %{
key: "AuthKey_ABC1234567.p8",
key_identifier: "ABC1234567",
team_id: "DEF8901234",
mode: :prod
}
AuthKeyはAppleDeveloperでダウンロードできます.
key_identifierはAuthKey_xxxxxxx.p8
のxxxxxxxの部分です.
team_idはAppleDeveloperのページで確認できます.
modeはビルドのモードで変わり,Debug時はdev,Adhoc・Release時はprodになります.
通知パケットの作成
notifi_packet = Pigeon.APNS.Notification.new(
%{"title" => title, "body" => body},
"device token",
"bundle identifier"
)
通知の送信
Pigeon.APNS.push(notifi_packet)
Androidの通知(FCM)
設定
config :pigeon, :fcm,
fcm_default: %{
key: "fcm_key"
}
通知パケットの作成
notifi_packet = Pigeon.FCM.Notification.new(
token,
%{"title" => title, "body" => body}
)
通知の送信
Pigeon.FCM.push(notifi_packet)
さいごに
今回,pigeonについて解説しました.ちなみに開発時iOSでの実行時に上記のmodeを間違ってしまい少し詰まりました.
FCMトークンとAPNSトークンを同時に扱いたいなといったときはFCMの場合トークン文字列にコロンがあるためそこで判別するといいと思います.
このライブラリは簡単に通知を送ることができるためおすすめです.