私はRESTサービスから通知を生成しようとしています。欠点は送信しないことですが、fcm.googleapis.com/fcm/sendはそれが成功したと応答します。 この私が最初のモジュールはhttpによって、二つの方法で行います。Firebase経由でプッシュ通知を生成
var exec = require('child_process').exec;
var cmd = 'curl -X POST --header "Authorization: key=<Key Server>" ';
cmd += '--Header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send ';
cmd +='-d \'{"to":"<Token Client>","notification":{"title":"Validación","body":"'+(new Date()).getTime()+'","sound":"default"}}\'';
console.log("=====================================");
console.log(cmd);
console.log("=====================================");
exec(cmd, function(error, stdout, stderr) {
if (error) {
console.log("=====================================");
console.error('exec error:'+error);
}
console.log("=====================================");
console.log('stdout: '+stdout);
console.log('stderr: '+stderr);
});
答えは両方のケースで:
var http = require('http');
var options = {
'hostname': 'fcm.googleapis.com',
'path': '/fcm/send',
'method': 'POST',
'headers': {
'Authorization': 'key=<Key Server>',
'Content-Type': "application/json"
}
};
var data = {
'to':tokenPush,
'notification':notification
};
var requestHttp = http.request(options, function(res){
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log(chunk);
});
});
requestHttp.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
requestHttp.end(JSON.stringify(data));
他の方法は、シェルからコマンドであります{"multicast_id": "success":1、 "failure":0、 "canonical_ids":0、 "results":[{"message_ID": "}}}
"node"コマンドで別のファイルから実行すると、シェルのコードが正しく動作します。
私は間違っている可能性がありますか?
にCLIENT_PUSH_IDとYOUR_AUTH_KEYを交換してくださいあなたはノードでエラーがありましたか? "requestHttp var = http.request(options、function" に置き換えて に置き換えてください "var requestHttp = http.request(options、function" –
)このエラーは無視してください。 –
私の答えのコードを試してください –