首页 > 解决方案 > 如何发送 HTTP 请求以在 firebase 中发送通知?

问题描述

要发送通知,您需要发送以下 HTTP 请求:

POST /fcm/send HTTP/1.1
Host: fcm.googleapis.com
Content-Type: application/json
Authorization: key=YOUR_SERVER_KEY

{
  "notification": {
    "title": "New chat message!",
    "body": "There is a new message in FriendlyChat",
    "icon": "/images/profile_placeholder.png",
    "click_action": "http://localhost:5000"
  },
  "to":"YOUR_DEVICE_TOKEN"
}

我怎样才能做到这一点??

标签: node.jsfirebasefirebase-cloud-messaging

解决方案


如果您使用的是 Node.JS,我建议您查看 Firebase 的 Node.JS SDK 的文档,而不是手动发送 HTTP 请求。有官方文档或者这个不错的教程

如果你仍然想使用普通的 HTTP 方法,你可以使用requestnpm 模块

$ npm install request

然后在您的代码中:

const request = require('request');

request({
  url: 'https://fcm.googleapis.com/fcm/send',
  method: 'POST',
  headers: {
    "Content-Type": "application/json",
    "Authorization": ['key', yourServerKey].join('=')
  },
  json: {
    to: clientFirebaseToken,
    notification: {
      title: "Notification Title",
      body: "This is a neat little notification, right ?"
    }
  });

编辑

他们的 GitHub

自 2020 年 2 月 11 日起,请求已完全弃用。预计不会出现新的变化。事实上,已经有一段时间没有人登陆了。

如果你使用axios

axios({
  method: 'post',
  url: 'https://fcm.googleapis.com/fcm/send',
  headers: {
    "Content-Type": "application/json",
    "Authorization": ['key', yourServerKey].join('=')
  },
  params: {
    to: clientFirebaseToken,
    notification: {
      title: "Notification Title",
      body: "Neat indeed !"
    }
  }
})

推荐阅读