Страницы

Поиск по вопросам

понедельник, 15 июля 2019 г.

Что такое App server необходимый для работы с GCM

Для отправки push уведомлений используя FCM, необходим app server, я совсем новичок в программировании и всё что я умею, это немного писать на Java и не понимаю концепцию серверов.
Что это за сервер такой, где его надо прописывать, в приложении или это что то, что должно общаться с приложением из вне? Информации то в интернете много, по тому, что надо прописывать в сервере, но все эти примеры предполагают, что я имею общее представление о том что такое сервер и что он у меня есть. Так же из того что я читал, следует, что этот сервер нужно писать не на java, а например на php, если это так, то как же я это смогу соединить в моем приложении?
Сам удивляюсь какой глупый вопрос получился, но я даже не его могу сформулировать нормально, так как не понимаю, что же такое этот сервер.
В общем буду признателен, за любую информацию по поводу того, что же такое app server используемый при работе с FCM на android.


Ответ

Вы правильно поняли что App server нужен для того что бы общаться с приложением из вне. Когда в своем приложении получаете token - вы отправляете его на сервер. Таким образом сервер может по этому токену слать вам push-notifications
Вот пример на Node js
var gcm = require('node-gcm');
var API_KEY = "yourApiKey";
var sender = new gcm.Sender(API_KEY);
//объект сообщения var message = new gcm.Message({ collapseKey: 'data', priority: 'high', contentAvailable: true, delayWhileIdle: false, timeToLive: 1000
data: { message: 'Message from gcm server', action: 'Update data on server' },
notification: { tag : 'hasData', title: "Title text", icon: "ic_launcher", color: "#22C064", sound: "notification_sound", body: "This is a GCM notification that will be displayed ASAP.", click_action: "OPEN_APP" // make intent-filter in Manifest.xml for this action } });

//Список токенов которым будут отправлены сообщения var registrationTokens = [];
registrationTokens.push('owQMHz9-Ep6FtiB-pp9uFcZTKcdvUhrsG3XdL7IWgZSt8cWfASzPPxEW1cBdLn1OUukqfsk9rlTexO3MQ0EeSdLXaAFXQn7vYzrKG1LTnv8LOxkBQqEd0VnxLd4');
//отправить на конкретные девайсы sender.send(message, { registrationTokens: registrationTokens }, function (err, response) { if(err){ console.error(err); } else{ console.log(response); } });
//отправить на все устройства которые подписаны на этот топик sender.send(message, {to : "/topics/global" }, function (err, response) { if(err){ console.error(err); } else{ console.log(response); } });

Комментариев нет:

Отправить комментарий