Javascript 将单信号API与Firebase云功能集成

Javascript 将单信号API与Firebase云功能集成,javascript,firebase,mobile,google-cloud-functions,onesignal,Javascript,Firebase,Mobile,Google Cloud Functions,Onesignal,将Onesignal API与Firebase云函数集成 大家好, 我想为使用实时firebase数据库的移动应用程序(Android,iOS)启用推送通知,现在我用一个信号从两个平台Android/iOS发送推送通知,但我想从firebase云功能执行此任务 我知道有一个用于JS的onesignal sdk,但我很难弄清楚如何配置我的云功能,因为这不是一个像其他普通服务器那样的服务器。相反,在我看来,它是一个上传脚本的界面 所以我对它感到困惑,更因为我是一个移动开发者,我对这种JS和云架构没有

将Onesignal API与Firebase云函数集成

大家好,

我想为使用实时firebase数据库的移动应用程序(Android,iOS)启用推送通知,现在我用一个信号从两个平台Android/iOS发送推送通知,但我想从firebase云功能执行此任务

我知道有一个用于JS的onesignal sdk,但我很难弄清楚如何配置我的云功能,因为这不是一个像其他普通服务器那样的服务器。相反,在我看来,它是一个上传脚本的界面

所以我对它感到困惑,更因为我是一个移动开发者,我对这种JS和云架构没有太多的经验

我需要的只是一个线索,以找出如何实施它请,或者知道这是可行的这个想法,或者我必须考虑另一个解决方案


我真的很感谢你的帮助和支持。

希望你的回复不会太晚,不会太有用

您应该能够使用与中提供的NodeJS代码非常相似的代码


嘿,我也在寻找同样的方法,你找到解决方案了吗?你找到解决方案了吗?嗨,我在firebase控制台函数中遇到了这个错误:{error:getaddrinfo ENOTFOUND onesignal.com onesignal.com:443 at errnoException(dns.js:28:10)at GetAddrInfoReqWrap.onlookup[as oncomplete](dns.js:76:26)代码:'enotfind',错误号:'enotfind',系统调用:'getaddrinfo',主机名:'onesignal.com',主机名:'onesignal.com',端口:443}
var sendNotification = function(data) {
  var headers = {
    "Content-Type": "application/json; charset=utf-8",
    "Authorization": "Basic NGEwMGZmMjItY2NkNy0xMWUzLTk5ZDUtMDAwYzI5NDBlNjJj"
  };

  var options = {
    host: "onesignal.com",
    port: 443,
    path: "/api/v1/notifications",
    method: "POST",
    headers: headers
  };

  var https = require('https');
  var req = https.request(options, function(res) {  
    res.on('data', function(data) {
      console.log("Response:");
      console.log(JSON.parse(data));
    });
  });

  req.on('error', function(e) {
    console.log("ERROR:");
    console.log(e);
  });

  req.write(JSON.stringify(data));
  req.end();
};

var message = { 
  app_id: "5eb5a37e-b458-11e3-ac11-000c2940e62c",
  contents: {"en": "English Message"},
  include_player_ids: ["6392d91a-b206-4b7b-a620-cd68e32c3a76","76ece62b-bcfe-468c-8a78-839aeaa8c5fa","8e0f21fa-9a5a-4ae7-a9a6-ca1f24294b86"]
};

sendNotification(message);