A+つくばネイティブアプリのためのFCMサーバ(通知バックエンド)
https://fcm.aplus-tsukuba.net/
A+つくばの本体のdockerを起動し後に,docker compose up -d
で起動します.
1分おきに更新を確認するスクリプトが自動実行されます.
firebaseServiceAccountKey.json
を入手して,ルートにおいてください.
初回実行時は,docker exec -it a_plus_tsukuba-fcm bash
で中に入り,python manage.py migrate
等が必要です.
CREATE DATABASE vhoi5_aplus_mobile_fcm_server
が必要な場合があります- データベースやテーブルの文字コードは
utf8
にしてください.utf8mb4
にすると動かなくなります.
app/apis.py
に説明が書いてあります.
GET api/device
でデバイスが無効になってないか確認(場合によっては通知権限をリクエストする)PATCH api/device/activate
で有効化をリクエストできる
GET api/device/subscription
で購読情報を確認する
POST api/thread/<thread_id>/subscribe
で登録する.デバイスレコードや購読情報レコードが未作成の場合は新規作成される.
A+つくばに存在しないスレッドIDも登録できるので注意
DELETE api/thread/<thread_id>/unsubscribe
で購読解除する.デバイスレコードや購読情報レコード,指定されたスレッドが存在しない場合はエラーになるが,指定されたスレッドが存在し,かつ購読状態でない場合に購読解除してもエラーにはならない.
python manage.py notice thread_id thread_title body type post_id reply_id
で更新通知を送ります.