pantasystem / Milktea

Misskey, MastodonのAndroidクライアント「Milktea」のソースコード
GNU General Public License v3.0
256 stars 22 forks source link

FCMを利用したプッシュ通知の実装 #52

Closed pantasystem closed 3 years ago

pantasystem commented 3 years ago

FCMを使ってプッシュ通知を実装する。 Misskeyの通知はMisskey API上のregisterを使って Cloud functionsなどのエンドポイントを登録し、そこで受信した通知をFCMに流すようにする。 Milkteaは複数アカウントに対応しているので、複数アカウントの通知を束ねて一つのアプリに通知する必要がある。

pantasystem commented 3 years ago

参考

https://github.com/tateisu/PushToFCM

https://github.com/YuigaWada/MissCat/tree/develop/ApiServer

pantasystem commented 3 years ago

/api/sw/registerのソースコード https://github.com/misskey-dev/misskey/blob/develop/src/server/api/endpoints/sw/register.ts

pantasystem commented 3 years ago

通知Publish部分の実装 https://github.com/misskey-dev/misskey/blob/develop/src/services/push-notification.ts

pantasystem commented 3 years ago

p256dh: 鍵共有プロトコルECDHで利用するブラウザの公開鍵 'auth': 仕様修正後に導入されたパラメータ 参考 https://qiita.com/tomoyukilabs/items/217915676603fda73b0a

pantasystem commented 3 years ago

WebPushについてのRFC https://tex2e.github.io/rfc-translater/html/rfc8291.html

pantasystem commented 3 years ago

SubwayTooterの通知周りの実装 https://github.com/tateisu/SubwayTooter/blob/trunk/app/src/main/java/jp/juggler/subwaytooter/notification/PushSubscriptionHelper.kt