Для работы с push-уведомлениями выполните запросы с помощью API-метода push (перед выполнением запроса определите токен пользователя):
получение списка токенов:
curl -X GET '<IP-адрес или DNS-имя сервера>/api/v1/push/tokens/' --header 'Authorization: Bearer <токен пользователя>' --header 'Accept: application/json'
Пример ответа:
[
{
"received_date":"2020-10-30T10:58:04.414637Z",
"device":{
"id_string":"654654ghdfg5435",
"is_active":true,
"os_version":"iOS"
},
"token":"b34735aa4681cfe91616c775f3b9b8f7f410a3e7c79ed6a48dfd41907a13be23",
"push_service":"Firebase"
}
]
добавление токена:
на iOS:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/tokens/add/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{"token": {"value": "<токен>","platform": "ios"}}'
на Android:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/tokens/add/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{"token": {"service": "firebase", "platform": "android", "value": "<токен>"}}'
Пример ответа:
{
"status":"OK"
}
удаление токена:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/tokens/remove/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{"tokens": ["<токен>"]}'
Пример ответа:
{
"status":"OK"
}
получение списка push-топиков:
curl -X GET '<IP-адрес или DNS-имя сервера>/api/v1/push/topics/' --header 'Authorization: Bearer <токен пользователя>' --header 'Accept: application/json'
Пример ответа:
[
{
"name":"topic",
"description":"",
"subscribed":true
},{
"name":"topic1",
"description":"",
"subscribed":false
},{
"name":"topic2",
"description":"",
"subscribed":false
}
]
подписка пользователя на push-топики:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/topics/subscribe/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{"topics":["<название топика 1>","<название топика 2>",...,"<название топика n>"]}'
Пример ответа:
{
"status":"OK"
}
отписка пользователя от push-топиков:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/topics/unsubscribe/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{"topics":["<название топика 1>","<название топика 2>",...,"<название топика n>"]}'
Пример ответа:
{
"status":"OK"
}
отправка push-уведомления конкретному пользователю:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/send/<название шаблона>/user/<имя пользователя>/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' -d '{"title": "<title>","body": "<body>"}'
Пример ответа:
{
"status":"OK"
}
отправка push-уведомления всем пользователям, которые подписаны на конкретный push-топик:
curl -X POST '<IP-адрес или DNS-имя сервера>/api/v1/push/send/<название шаблона>/topic/<название топика>/' --header 'Authorization: Bearer <токен пользователя>' --header 'Content-Type: application/json' -d '{"title": "<title>","body": "<body>"}'
Пример ответа:
{
"status":"OK"
}
При передаче push-уведомления конкретному пользователю или всем пользователям в теле запроса указываются параметры, заданные в шаблоне:
-d '{"title": "<title>","body": "<body>"}'
Например, указанные значения параметров «title» и «body» будут соответствовать следующему шаблону:
для Firebase:
{
"notification": {
"title": "{{title}}",
"body": "{{body}}"
}
}
для APNs:
{
"aps": {
"alert": {
"title": "{{title}}",
"body": "{{body}}"
}
}
}
См. также: