我正在尝试弄清楚如何使用Firebase向Android发送推送通知,并使用旧版HTTP(https://fcm.googleapis.com/fcm/send)使其工作,但文档建议使用较新的端点(https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send)。我似乎无法让它工作,因为我一直得到这个回应:
{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}
使用https://firebase.google.com/docs/cloud-messaging/send-message#send_messages_to_specific_devices处的示例:
POST https://fcm.googleapis.com/v1/projects/project-916177026973/messages:send HTTP/1.1
cache-control: no-cache
Postman-Token: 81403929-77ba-4568-8681-a854527ccb22
Content-Type: application/json
Authorization: Bearer <token redacted>
User-Agent: PostmanRuntime/6.4.1
Accept: */*
Host: fcm.googleapis.com
accept-encoding: gzip, deflate
content-length: 319
Connection: close
{
"message":{
"token" : <token redacted>,
"notification" : {
"body" : "This is an FCM notification message!",
"title" : "FCM Message",
}
}
}
我还尝试删除最后一个逗号以使其符合JSON并仍然没有运气。有任何想法吗?
答案 0 :(得分:3)
正如OP所指出的,Firebase现在建议FCM v1端点,如果你想通过HTTP发送消息。
要通过HTTP发送消息,请向FCM v1发送HTTP POST请求 端点并指定send方法。端点URL必须包含 您的应用的Firebase项目的项目ID,可在 Firebase控制台的常规项目设置选项卡。
看起来像这样:
POST https://fcm.googleapis.com/v1/projects/your_project_id_here/messages:send HTTP/
网址your_project_id_here
的部分是您的项目ID。您需要在标签project Id
下的项目的Firebase控制台的Settings
部分找到特定于项目的General
。
寻找Project ID
。如果您对正确的Project ID
有任何疑问,如果网站中的URL指向您的项目,那么它也是一个部分。它看起来像:
https://console.firebase.google.com/project/your_project_id_here/settings/general/android:your_project_name