Push Notifications¶
Store Token¶
You can find documentation in this link: https://firebase.google.com/docs/database/.
Some characters should be replaced by:
# with “__hash__
. with __dot__
$ with __dollar__
Token record should have these values:
Key |
Type |
Description |
|---|---|---|
os |
String |
This value is always ANDROID or IOS |
date |
String |
XMPP date format (yyyy-MM-dd’T’HH:mm:ssZ) |
appVersion |
String |
App Version name |
Example:
Path: liam/jabbers/3489543934/firebaseToken/jd3n-dj3-fj3-9gj-3jdwdnini23d3n-j3d23dnd
Values
{
"os": "ANDROID",
"date": "2018-05-06 10:23:44",
"appVersion": "1.1",
}
Push Message Payload¶
The push message is is contained inside notification’s payload:
Push message payload structure:
Type |
Parameter name |
Required |
Description |
|---|---|---|---|
Boolean |
requestReceipt |
true |
Request receipt of message |
String |
text |
true |
Generic text description |
String |
type |
true |
Message type |
String |
payload |
false |
Payload of message, same as xmpp message |
String |
serverId |
true |
Server id of message |
String |
senderName |
true |
Name of sender |
String |
senderAddress |
true |
Address of sender |
String |
channelType |
true |
Type of channel |
String |
channelName |
true |
Name of channel |
String |
channelAddress |
true |
Address of channel |
Date |
sendDate |
true |
Message send date |
Date |
receiveDate |
false |
(it’s setted by the server when message is received) Message received date |
Example:
{
"channelAddress": "00393465448122",
"channelName": "Pierpa Vodafone",
"channelType": "CHANNEL_STANDARD",
"payload": "{\"text\": \"text message\"}",
"requestReceipt": true,
"sendDate": "2017-03-07T10:46:52.347Z",
"receiveDate": "2017-03-07T10:46:52.347Z",
"senderAddress": "00393929210907",
"senderName": "M8",
"serverId": "1488883612255003939292109078cd57",
"text": "Tgh",
"type": "CHAT_TEXT"
}
Send Push Notification¶
To send push notification client needs to save on Firebase realtime database push message. You can find documentation in this link: https://firebase.google.com/docs/database/.
How is shown some parts of the path are dynamics, so they change according to the domain and user.
Data to be saved for send push message are the following:
Type |
Parameter name |
Required |
Description |
|---|---|---|---|
String |
payload |
true |
Notification payload as described before |
String |
sender |
true |
The account that send the notification |
String |
receiver |
true |
The account that receive the notification |
Data example:
{
"payload" : "{\n \"channelAddress\": \"00393331486253\",\n \"channelName\": \"Gennaro Amendola\",\n \"channelType\": \"CHANNEL_STANDARD\",\n \"payload\": \"{\\n \\\"text\\\": \\\"Cachi\\\"\\n}\",\n \"requestReceipt\": true,\n \"sendDate\": \"2018-04-05T13:54:39.681Z\",\n \"senderAddress\": \"00393929210907\",\n \"senderName\": \"392 921 0907 ~ Gennaro HTC\",\n \"serverId\": \"15229364796810039392921090743d5b\",\n \"text\": \"Cachi\",\n \"type\": \"chat_text\"\n}",
"sender" : "00393374588473",
"receiver" : "00393331486253"
}
Silenced Push Notification¶
To silence push notification client needs to save on Firebase realtime database all JabberIds and GroupIds from which doesn’t want receive push notifications. You can find documentation in this link: https://firebase.google.com/docs/database/.