3

PythonでExpo製React NativeにPush通知を打つバックエンドの実装

2 min read

Expo製React NativeのPush通知のバックエンド部分が少し迷ったのでメモしておく

ExpoのPush通知の仕組みと手順

仕組み

端末ごとにExpoの通知トークンが存在する。モバイルアプリは、iOSなら許可された時(=オプトイン)、Androidなら拒否されない時(=オプトアウト)に取得できる。

例えばこんな感じ:ExponentPushToken[hogehogehogehogehogehoge] どうやらExponent...の部分も必要らしい

手順(かんたん2ステップ!)

ステップ 1

まずはフロントエンドでユーザーから手に入れたトークンをバックエンドに保存する。 フロントエンドについてはこの記事がわかりやすかった。

ステップ 2

バックエンドの好きな言語で、ExpoのAPIを叩く。素敵なAPIで、通知対象がiOSかAndoridかに関わらず叩くだけでいい。うまくラップしてくれていてありがたい。 

では実際のコードが以下である。




{"data":{"status":"ok","id":"a7ef0911-3e29-46d7-b44d-6a71cae0d094"}}

Curlの場合はこれ

curl -H "Content-Type: application/json" -X POST "https://exp.host/--/api/v2/push/send" -d '{
  "to": "ExponentPushToken[hogehogehogehogehogehoge]",
  "title":"hello",
  "body": "world"
}'

まとめ

トークンとメッセージ等をつけてAPIを叩くと通知ができることがわかった。 実際には各言語ごとにライブラリがあるのでそれを使用するのが良さそうだが、やっていることはAPIを叩いているだけと思えば理解しやすいかと感じた。 Pythonならこれが公式っぽい

Discussion

コメントにはログインが必要です。