我正在使用Ionic 3构建应用程序并使用Firebase作为Android构建的推送提供程序。下图显示了现在正在运行的架构(不是GCM而是Firebase)
顺便说一句,我想知道是否有可能(以及如何)自己构建推送提供程序,我在哪里可以找到一些信息,我搜索了所有谷歌,但我没有发现了任何一种反应。使用我公司的外部推送提供商推送通知仅工作(Firebase,OneSignal等)?
编辑:我的目的是不使用任何类型的第三方服务,如firebase或APNS或OneSignal等,我想自己构建
抱歉,移动设备不是我的IT背景。 :)
答案 0 :(得分:2)
您可以通过Firebase
使用自己的服务器发送推送通知。
请按照以下步骤操作。
Server key
,Legacy server key
,Sender ID
。Server key
。复制Server key
。post
个请求发送给“https://fcm.googleapis.com/fcm/send”。发布请求的标题
您需要设置两个标题。
将Server key
替换为您在项目设置中从firebase云消息传递中复制的内容。
有效负载
您必须根据离子推送插件更改有效负载。(cordova-plugin-fcm,cordova-plugin-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 Documentation了解更多信息。