https://github.com/itisnajim/strapi-plugin-fcm
Send FCM notifications from your Strapi app.
https://github.com/itisnajim/strapi-plugin-fcm
fcm fcm-notifications firebase-cloud-messaging notifications strapi strapi-plugin strapi-plugin-fcm strapi-v4
Last synced: 3 months ago
JSON representation
Send FCM notifications from your Strapi app.
- Host: GitHub
- URL: https://github.com/itisnajim/strapi-plugin-fcm
- Owner: itisnajim
- License: mit
- Created: 2022-07-06T01:01:59.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-09-03T09:22:52.000Z (10 months ago)
- Last Synced: 2025-02-26T00:08:59.483Z (4 months ago)
- Topics: fcm, fcm-notifications, firebase-cloud-messaging, notifications, strapi, strapi-plugin, strapi-plugin-fcm, strapi-v4
- Language: JavaScript
- Homepage:
- Size: 2.76 MB
- Stars: 23
- Watchers: 1
- Forks: 15
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Installation
### From NPM:
```bash
npm install strapi-plugin-fcm
```### From YARN:
```bash
yarn add strapi-plugin-fcm
```### From Git:
1. Clone the plugin into your Strapi project
```bash
cd //src# create plugins folder if not exists
# mkdir plugins# go to plugins folder
cd plugins# clone the plugin code into a folder and skip the prefix
git clone https://github.com/itisnajim/strapi-plugin-fcm.git strapi-plugin-fcm
# install dependencies
cd strapi-plugin-fcm && yarn install # or npm install
```2. Enable the plugin in `/config/plugins.js` .
```javascript
module.exports = {
// ...
'strapi-plugin-fcm': {
enabled: true,
resolve: './src/plugins/strapi-plugin-fcm' // path to plugin folder
},
// ...
}
```3. Build the plugin
```bash
# back to project root and build the plugin
yarn build # or npm run build
# start
yarn develop # or npm run develop
```## Configuration
- In the Firebase console, open Settings > [Service Accounts](https://console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk).
- Click Generate New Private Key, then confirm by clicking Generate Key.
- Past the content of your downloaded service account json file into FCM Plugin Configuration > serviceAccount. (like in the picture below, then you may need to restart the server)
![]()
- In the same interface 'FCM Plugin Configuration', optionally you can provide where the devices tokens are stored, in the picture example above, I store them in User -> **deviceToken** (strapi generate the users database table with the name up_users).
- Optionally you can provide all the topics you have, in the 'FCM Topic' collection type (via the dashboard or via the api - Post requests).
![]()
## Usage
### Via the dashboard
- Enter the notification content.
- Select targets to send to.
- Click send!
![]()
![]()
### Another way via the dashboard.
- you can create a new entry in the 'FCM Notification' collection type and click publish to send to the FCM.### Via the api
- First you have to enable and give routes permissions to a specific role or roles.
![]()
- Then via an Http Client (axios, ajax, postman, curl or whatever) send a post request with the body data:```json
{
"data": {
"title": "OKey",
"body": "Test body",
"image": "",
"payload": "",
"targetType": "topics",
//or "targetType": "tokens",
"target": "client_android",
//or multiple topics "target": "client_android,client_ios",
//or "target": "eyJhbGciOiJFUzI1...",
//publishedAt: null //<<- uncomment this if you want to just add an entry as a draft to 'FCM Notification' collection without publishing and sending FCM.
}
}
```- You can send an array too:
```json
{
"data": [{...entry1}, {...entry2}, {...entry3}, ...]
}
```## Trick
If you have saved the entries in the FCM Notification collection as drafts, you can scheduled them to be sent to FCM at a later time.
- [Scheduled publication](https://docs.strapi.io/developer-docs/latest/guides/scheduled-publication.html)
- [strapi-plugin-publisher
](https://github.com/ComfortablyCoding/strapi-plugin-publisher)
## References
- [Strapi v4 developer documentation](https://docs.strapi.io/)