2016-06-24 17 views

답변

22

Firebase Cloud Messaging을 통해 메시지를 보내려면 documentation on sending downstream messages에 설명 된대로 HTTP 끝점을 호출해야합니다.

var request = require('request'); 

function sendMessageToUser(deviceId, message) { 
    request({ 
    url: 'https://fcm.googleapis.com/fcm/send', 
    method: 'POST', 
    headers: { 
     'Content-Type' :' application/json', 
     'Authorization': 'key=AI...8o' 
    }, 
    body: JSON.stringify(
     { "data": { 
     "message": message 
     }, 
     "to" : deviceId 
     } 
    ) 
    }, function(error, response, body) { 
    if (error) { 
     console.error(error, response, body); 
    } 
    else if (response.statusCode >= 400) { 
     console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage+'\n'+body); 
    } 
    else { 
     console.log('Done!') 
    } 
    }); 

sendMessageToUser(
    "d7x...KJQ", 
    { message: 'Hello puf'} 
); 

업데이트 (4 월 2017 년) :이처럼 간단

뭔가 트릭을 할 수있는 당신은 이제 중포 기지 용 클라우드 기능이 매우 유사 코드를 실행할 수 있습니다. https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens

+0

감사합니다. YOUR_API_KEY_HERE 변수는 무엇입니까 ?? FCM 콘솔에서 해당 키를 가져 오는 방법을 모르겠습니다 ... –

+2

콘솔에서 톱니 바퀴 아이콘> 프로젝트 설정> 클라우드 메시징을 선택하면 API 키 (서버 키)가 표시됩니다. –

+1

나는 이것을 시험해보고 있는데, 나는 오류를 얻지 못한다. 그러나 나는 그 통보를 보지 않을 것이다. 이럴 이유가 있을까요? 특정 장치 ID뿐만 아니라 주제를 시도했습니다 ... 빠른 시작 예제에서는 "/ topic/news"를 사용하므로 그 중 하나를 수행했습니다. *** ios btw,하지만 매개 변수는 내가 생각하는 동일합니다 ... – ingrid

8
//I done by this code using node- gcm module. 
//We're using the express framework and the node-gcm wrapper 

var express = require('express'); 
var gcm = require('node-gcm'); 
//init express 
var app = express(); 
app.get('/push', function (req, res) { 
    var message = new gcm.Message({ 
     data: { key1: 'hello' }, 
     notification: { 
      title: 'SPECOZ Offers1', 
      body: 'body_data' 
     } 
    }); 

    // Set up the sender with you API key, prepare your recipients' registration tokens. 
    var sender = new gcm.Sender('Api_Key'); 
    sender.send(message, 'device_token', function (err, response) { 
     if (err) { 
      console.error("Error:", err); 


     } 

     else console.log("Response:", response); 
     res.send(response); 
    }); 

}); 
app.listen("pass the port number");