catstodon/docs/Using-the-API/Push-notifications.md
Eugen Rochko d9ca46b464 Cleaning up format of broadcast real-time messages, removing
redis-backed "mentions" timeline as redundant (given notifications)
2017-02-02 00:03:31 +01:00

1.4 KiB

Push notifications

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:

  • Responsibility of an instance owner: FCM_API_KEY set on the instance. This can be obtained on the Firebase dashboard, in project settings, under Cloud Messaging, as "server key"
  • Responsibility of the app developer: Firebase added/enabled in the Android/iOS app. See Guide

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.