不接受Angular中的授权标头

不接受Angular中的授权标头

本文介绍了向FCM发送POST请求,不接受Angular中的授权标头的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

因此,我正在尝试使用FCM使用Firebase云消息传递将通知从Angular Web应用程序发送到移动应用程序.

So I'm trying to use FCM to send notifications from Angular web application to mobile app using Firebase cloud messaging..

但是我收到401响应请求缺少身份验证密钥",我在POSTMAN上测试了相同的请求,并且可以正常工作,但在角度上却不能.

but I'm getting 401 response "the request was missing an Authentication Key",I tested the the same request on POSTMAN and it was working but on angular it is not..

这是我的代码:

pushNotification(title , body){


this.http.post('https://fcm.googleapis.com/fcm/send' , {
  header: {
    'Content-Type':  'application/json',
    'Authorization' :  'key='+ environment.cloudMessages.serverKey
  },
  body: {
    "notification": {
      "title": title   ,
      "body":  body,
      "mutable_content": true
      },
      "priority":"high",
  }
}).subscribe(res => {
  console.log(res);
})

}
}

我的密钥是来自云消息传递的服务器密钥.

Where my key is the server key from cloud messaging..

推荐答案


//Interfaces containing payload
export interface FCMData {
  body: string;
  title: string;
}

export interface FCMPayload {
  to: string;
  collapse_key: string;
  data: FCMData;
}

// this method sends the notification
  async sendNotifications(message: string) {

    const headers: HttpHeaders = new HttpHeaders({
      'Content-Type': 'application/json',
      Authorization: 'key=' + AppSettings.SERVER_TOKEN
    });


      const data: FCMData = {
        body: message,
        title: 'Sup!'
      };
      const fcmPayload: FCMPayload = {
        to: reg.token,
        collapse_key: 'type_a',
        data
      };

      this.http.post('https://fcm.googleapis.com/fcm/send' , fcmPayload , {headers}).subscribe(res => {
        console.log(res);
      });
    );
  }

要在Kotlin中接收数据有效载荷,在您的FirebaseMessagingService内部->覆盖onMessageReceived的乐趣

To Receive the Data Payload in Kotlin,Inside your FirebaseMessagingService -> override fun onMessageReceived


 if (remoteMessage.data.isNotEmpty()) {
    const body= (remoteMessage.data as ArrayMap).valueAt(0)
 }

这篇关于向FCM发送POST请求,不接受Angular中的授权标头的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-15 23:57