Note: This push notification design turned out to not be fully operational on the side of Firebase. A different approach is in consideration
Mastodon can communicate with the Firebase Cloud Messaging API to send push notifications to apps on users' devices. For this to work, these conditions must be met:
FCM_API_KEY
set on the instance. This can be obtained on the Firebase dashboard, in project settings, under Cloud Messaging, as "server key"When the app obtains/refreshes a registration ID from Firebase, it needs to send that ID to the /api/v1/devices/register
endpoint of the authorized user's instance via a POST request. The app can opt out of notifications by sending a similiar request with unregister
instead of register
.
The push notifications will be triggered by the notifications of the type you can normally find in /api/v1/notifications
. However, the push notifications will not contain any inline content. They will contain JSON data of this format ("12" is an example value):
{ "notification_id": 12 }
Your app can then retrieve the actual content of the notification from the /api/v1/notifications/12
API endpoint.