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
で更新通知を送ります.