Push-уведомление работает только с услугой стороннего push-провайдера? - PullRequest
0 голосов
/ 07 июня 2018

Я создаю приложение с Ionic 3 и использую Firebase в качестве провайдера push для сборки Android.На рисунке ниже показана схема, которая сейчас работает (не GCM, а Firebase)

enter image description here

Кстати, я хотел бы знать, возможно ли это (икак) чтобы самому создать push-провайдер и где я мог найти какую-то информацию, я обыскал все гугл, но я не нашел никакого ответа.Push-уведомление ТОЛЬКО РАБОТАЕТ с провайдером push-уведомлений, чуждым моей компании (Firebase, OneSignal и т. Д.)?

РЕДАКТИРОВАТЬ: Моя цель - не использовать какие-либо сторонние службыкак Firebase или APNS или OneSignal и т. д., я хотел бы создать его самостоятельно

Извините, но Mobile это не мое ИТ-образование.:)

1 Ответ

0 голосов
/ 07 июня 2018

Вы можете отправлять push-уведомления, используя собственный сервер, через Firebase.Выполните следующие действия.

  • Перейдите в консоль Firebase и создайте проект.
  • Перейдите на ОБЛАЧНОЕ СООБЩЕНИЕ в Настройки проекта .
  • В учетных данных проекта вы увидите Server key, Legacy server key, Sender ID.
  • Единственное, что вам нужно, это Server key.Скопируйте Server key.
  • Вам необходимо отправить post запрос в https://fcm.googleapis.com/fcm/send'.

Заголовки для почтового запроса

Вам нужно установить два заголовка.

  1. Тип содержимого: 'application / json'
  2. Авторизация: 'ключ = ключ сервера'

Заменить Server key с тем, что вы скопировали из облачного обмена сообщениями Firebase в настройках проекта.

Полезные данные

Вам потребуется изменить полезную нагрузку в соответствии с плагином ionic push. (Cordova-plugin-fcm, Cordova-плагин-firebase).

{
   "to" : 'Push Device Token',
   "notification" : {
        "title": 'Title for Push Message',
         "body" : 'Push Message'
    }
}

{
   "to" : 'Push Device Token',
   "content_available": boolean,
   "priority": "high",
   "data": {
       "show_in_foreground": boolean,
       "body": 'Push Message'
     }
}

Пример кода

Если вы используете NodeJS, вы можете отправить запрос с помощью request npm module.

var request = require('request');
var PUSH_API_URL = 'https://fcm.googleapis.com/fcm/send';
var  AUTHORIZATION = 'key=XXXXXXXXX'; //Replace XXXXXXXXX with your Server key
var payload = {
   "to" : 'Push Device Token',
   "notification" : {
        "title": 'Title for Push Message',
         "body" : 'Push Message'
    }
};

request.post(
    PUSH_API_URL,
{
  json: payload,
  headers:{
    'Authorization' : AUTHORIZATION,
    'Content-Type' : 'application/json'
  }} , function(error, response, body){
  if (error) {
    // TODO: handle the error
  }
  else if(response.statusCode === 200){
    // TODO: handle the success response
  }
  else{

  }
});

Надеюсь, это поможет вам.Если вам нужно что-то уточнить, прокомментируйте ниже.Читайте больше от Документация Firebase .

...