Метод работы с push-уведомлениями

Для работы с 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"
  }
]

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"}}'

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"
}

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
  }
]

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"
}

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"
}

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"
}

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» будут соответствовать следующему шаблону:

{
  "notification": {
    "title": "{{title}}",
    "body": "{{body}}"
  }
}

{
  "aps": {
    "alert": {
      "title": "{{title}}",
      "body": "{{body}}"
    }
  }
}

См. также:

API сервера | Настройка push-уведомлений