【问题标题】:Google FCM Invalid_argument when sending message发送消息时 Google FCM Invalid_argument
【发布时间】:2018-05-18 05:14:17
【问题描述】:

我正在尝试弄清楚如何使用 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 兼容,但仍然没有运气。有任何想法吗?

【问题讨论】:

  • 您确定您使用的是正确的项目 ID 吗?看起来这部分“/project-916177026973/”包含您的发件人 ID。当您打开 Firebase 控制台时,您的项目 ID 将成为 URL 的一部分。
  • @Barns 哈利路亚!谢谢 - 让它成为一个解决方案,我会将其标记为答案。

标签: android firebase firebase-cloud-messaging


【解决方案1】:

正如 OP 所指出的,如果您想通过 HTTP 发送消息,Firebase 现在会向 FCM v1 端点建议。

要通过 HTTP 发送消息,请向 FCM v1 发送 HTTP POST 请求 端点并指定发送方法。端点 URL 必须包含 您的应用的 Firebase 项目的项目 ID,可在 Firebase 控制台的常规项目设置选项卡。

它看起来像这样:

POST https://fcm.googleapis.com/v1/projects/your_project_id_here/messages:send HTTP/

网址your_project_id_here 的部分是您的项目ID。您需要在 General 选项卡下的项目的 Firebase 控制台的 Settings 部分中找到项目特定的 project Id

寻找Project ID。如果您对正确的Project ID 有任何疑问,它也是您项目的网站地址中的 URL 的一部分。它看起来像:

https://console.firebase.google.com/project/your_project_id_here/settings/general/android:your_project_name

【讨论】:

  • 使用主题帮助我看到真正的问题。就我而言,我更改了 firebase 帐户并创建了一个新的 serviceAccountKey.json。但是.. 我仍然在应用程序上使用相同的令牌,由最旧的帐户创建。
猜你喜欢
  • 1970-01-01
  • 2022-08-19
  • 2020-09-21
  • 1970-01-01
  • 2021-01-26
  • 1970-01-01
  • 2019-01-19
  • 2019-10-17
  • 1970-01-01
相关资源
最近更新 更多