当前位置: 首页 > 知识库问答 >
问题:

HTTP。发送到FCM服务器不工作

严宇
2023-03-14

我正在使用带有HTTP本机模块的Ionic 2向FCM服务器发出推送通知的发布请求。我使用的代码是:

        HTTP.post(
          "https://fcm.googleapis.com/fcm/send",
          {
            "notification": {
              "title": "Notification title",
              "body": "Notification body",
              "sound": "default",
              "click_action": "FCM_PLUGIN_ACTIVITY",
              "icon": "fcm_push_icon"
            },
            "data": {
              "hello": "This is a Firebase Cloud Messagin  hbhj g Device Gr new v Message!",
            },
            "to": "device token",
          },
          {
            Authorization: {
              key: "AUTHORIZATION KEY HERE"
           }
          })

它给我一个错误:

Unimplemented console API: Unhandled Promise rejection:
Unimplemented console API: Error: Uncaught (in promise): [object Object]

我用Postman尝试了发布请求,它可以完美地传递推送通知。

Postman的代码是:

POST /fcm/send HTTP/1.1
Host: fcm.googleapis.com
Content-Type: application/json
Authorization: key=Authorisation Key
Cache-Control: no-cache
Postman-Token: 446e253b-179a-d19b-21ea-82d9bb5d4e1c

{
  "to": "Device Token",
  "data": {
    "hello": "This is a Firebase Cloud Messagin  hbhj g Device Gr new v Message!",
   }
     "notification":{
    "title":"Notification title",
    "body":"Notification body",
    "sound":"default",
    "click_action":"FCM_PLUGIN_ACTIVITY",
    "icon":"fcm_push_icon"
  },
}

问题:

>

如果我试图添加一个函数(response){来获取服务器的响应,它会给我一个错误https://github.com/wymsee/cordova-HTTP

共有1个答案

邹山
2023-03-14

为什么要使用HTTP本机模块?Angular有一个内置的Http

使用这个(在您的NgModule中从@角/超文本传输协议导入HttpModule),您只需调用

import { Http, Headers } from '@angular/http';

......

constructor(public http: Http) { }

sendPushNotification(deviceId: string) {
  let url = 'https://fcm.googleapis.com/fcm/send';
  let body = 
   {
     "notification": {
         "title": "Notification title",
         "body": "Notification body",
         "sound": "default",
         "click_action": "FCM_PLUGIN_ACTIVITY",
         "icon": "fcm_push_icon"
     },
     "data": {
         "hello": "This is a Firebase Cloud Messagin  hbhj g Device Gr new v Message!",
     },
     "to": "device token"
   };
let headers: Headers = new Headers({
  'Content-Type': 'application/json',
  'Authorization': 'key='+this.someKey
});
let options = new RequestOptions({ headers: headers });

console.log(JSON.stringify(headers));

  this.http.post(url, body, headers).map(response => {
    return response;
  }).subscribe(data => {
     //post doesn't fire if it doesn't get subscribed to
     console.log(data);
  });
}
push.on('notification', (data) => {
 if (data.additionalData.foreground) {
          // if application open, show popup
          let confirmAlert = this.alertCtrl.create({
            title: data.title,
            message: data.message,
            buttons: [{
              text: 'Ignore',
              role: 'cancel'
            }, {
              text: 'Go to',
              handler: () => {
                //TODO: Your logic here
                this.navCtrl.setRoot(EventsPage, {message: data.message});
              }
            }]
          });
          confirmAlert.present();
        } else {
          //if user NOT using app and push notification comes
          //TODO: Your logic on click of push notification directly
          this.navCtrl.setRoot(EventsPage, {message: data.message});
        }
      });
      push.on('error', (e) => {
        alert(e);
      });

    });
 类似资料:
  • 使用Ionic 2和angular http我试图向https://fcm.googleapis.com/fcm/send发出http post请求,用postman测试的请求工作得非常好 这个问题是我这个问题的后续问题: http请求的代码是 来自chrome控制台的标题如下: 一般标题 请求URL:https://fcm.googleapis.com/fcm/send请求方法:POST状态代码

  • 当按钮被按下时,我执行它

  • 我正在开发一个基于云的后端HTTP服务,该服务将公开用于与一些on-prem系统的集成。客户机系统是由外部供应商定制的,它们是带有自己数据库的后端系统。这些系统部署在我们客户的公司中,我们无法访问它们,也无法控制它们。我们向供应商提供我们的API规范,他们实现客户机代码。 我的服务与客户交换的数据格式基于XML,并遵循一定的标准。供应商用不同的编程语言实现他们的客户机系统,随着时间的推移,新的供应

  • 我正在创建我的产品,并与这个问题。有一天,我设置了Socket.io,一切都很好。第二天,我将服务器和客户端从http迁移到HTTPS。迁移后客户端和服务器端仍然连接,但不能从客户端发射到服务器,从服务器发射到客户端。 我的ssl证书位于和中,它们加载正确。运行在上的服务器 我的示例react组件。我的react应用程序运行在上。HTTPS连接良好,工作良好。 我该怎么办?也许我在中错误地使用了s

  • 问题内容: 我正在寻找通过GET将JSON对象发送到服务器。克里斯关于通过JSON将对象数组发布到ASP.Net MVC3的答案适用于httpPOST,但不适用于GET。我的情况也适用于POST,但不适用于GET。如何使GET工作正常这是我的情况:在Controller中,我有以下方法publicActionResult Screenreport(Screentable screendata) 我

  • 问题内容: 我是一名具有游戏和3D图形背景的程序员,目前我想提高自己的网络和Web开发技能。 为此,我有一项任务要完成。我的想法是,我希望能够发送HTTP请求或类似于运行基于LAMP的安装程序的Web服务器的内容。我想知道如何使用Cocoa Touch框架从iPhone发送包含一些信息的HTTP请求到我的Web服务器。 我希望Web服务器(使用PHP)能够将发送的信息记录到纯文本文件中,以便以后用