Firebase通知:通过HTTP Post发送消息

3

我目前在我的应用程序中设置了Firebase通知,当我发送一条消息时,该消息将发送给我应用程序的所有用户。(我当前通过Firebase控制台发送消息)。我想找到另一种不涉及Firebase控制台的推送通知方式,我相信使用HTTP Post是一种简单的方法。如何通过HTTP Post远程发送推送通知呢?

1个回答

11

因为评论而进行编辑: 请确保不要将服务器密钥包含在客户端中。有一些方法是“不那么好的人”可以找到它并做些事情... 正确的方法是让你的客户端指示你的应用程序服务器发送通知。

您需要向Google API端点发送HTTP-Post请求。

您需要以下标头:

Content-Type: application/json
Authorization: key={your_server_key}

您可以在 Firebase 项目中获取您的服务器密钥。

HTTP POST 内容:示例

{ 
    "notification": {
        "title": "Notification Title",
        "text": "The Text of the notification."
    },
    "project_id": "<your firebase-project-id",
    "to":"the specific client-device-id"
}

示例设备ID:

cc6VGMjpIiA:APA91bGLpm5Z2p0NNh7nxttCTVd1tTsL2jObDaS9U8G1YjDjkpwkBlRLjU89ns4ujQ7rFU1Z2NshpUAX2RiQiIDKhHJdB0RtSS3H6nTT-lGEkIpzVtVzJpLIVqzSVbRjmyYlxD3BSLZl

您需要将此请求发送到https://fcm.googleapis.com/fcm/send

目前无法使用API向所有设备发送通知。 您必须使用Firebase控制台进行操作。

我喜欢使用Chrome插件“Postman”发送API请求,因为可以保存HTTP请求并且非常方便。

您也可以使用curl。

curl 
-X POST 
-d "{ "notification": {
    "title": "Notification Title",
    "text": "The Text of the notification."
  },
  "project_id": "<your firebase-project-id",
  "to":"the specific client-device-id"
}" 
-H "Content-Type: application/json" 
-H "Authorization: key={your_server_key}" 
https://fcm.googleapis.com/fcm/send

这确实是使用 FCM 发送 POST 消息的绝佳示例。请注意,由于此方法需要使用您的 FCM 服务器密钥,因此不应在客户端设备上运行此代码。在客户端中公开您的服务器密钥会使恶意用户找到您的密钥并代表您发送消息成为可能。请参阅 https://dev59.com/0VoU5IYBdhLWcg3wc2xW - Frank van Puffelen
是的 - 那有点误导人。我已经相应地编辑了我的帖子 :) - Hannes
谢谢您的回答!如果我想通过Swift代码发送这个请求,我该怎么做? - Bryan
我在Swift代码中从未这样做过。肯定有一种简化问题的HTTP库。对于Java/Android,有Volley... 基本上你需要发出相同的请求。这可能会有所帮助! 祝你好运 :) - Hannes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接