Firebase 旧版 FCM API 到 Http v1 的迁移由于 json 请求而失败

问题描述 投票:0回答:1

在我们的团队中,我们使用旧版 Firebase FCM API,需要迁移到新的 HTTP v1 API。我们的 C# 代码库。

我查看了官方文档(https://firebase.google.com/docs/cloud-messaging/migrate-v1),但是,根据文档进行更改后,我们收到 400 bad request 错误。到目前为止我们做了什么:

  1. 使用新的授权接口来获取令牌持有者(我们可以确认我们获得了持有者)

  2. 在我们的http请求的授权部分使用这个令牌持有者。

我们旧的 json 请求:

{
  “至”:“xxxx”,
  “优先级”:“高”,
  “内容可用”:正确,
  “数据”: {
    “pushType”:“troyHCE”,
    "digitizedCardId": "",
    “标题”:“TROYHCE”,
    “类型”:“REQUEST_SESSION”,
    "消息": "{'sessionID':'xxxxxxx' }",
    “安卓”: {
      “优先级”:“高”
    },
    “网络推送”:{
      “标题”:{
        “紧急程度”:“高”
      }
    }
  }
} 

我们在检查文档后尝试发送新请求

{
  “信息”: {
    “令牌”:“xxxx”,
    “优先级”:“高”,
    “内容可用”:正确,
    “数据”: {
      “pushType”:“troyHCE”,
      "digitizedCardId": "",
      “标题”:“TROYHCE”,
      “类型”:“REQUEST_SESSION”,
      "消息": "{'sessionID':'xxxxxxx' }",
      “安卓”: {
        “优先级”:“高”
      },
      “网络推送”:{
        “标题”:{
          “紧急程度”:“高”
        }
      }
    }
  }
}

这个请求直接给了我们一个400 bad request。然而,当我们尝试举个例子时

{
  “信息”: {
    “令牌”:“xxxx”,
    “通知”: {
      "body": "这是一条 FCM 通知消息!",
      "title": "FCM 消息"
    }
  }
}

这按预期工作。这意味着我们的令牌持有者等可以工作。但是,我们从供应商服务获得的“数据”部分以我共享的第一个 json 请求的形式给出请求。因此,我们在适应新的 api 交互数据部分时遇到了问题。我们应该改变什么?

c# firebase firebase-cloud-messaging
1个回答
0
投票

如果你使用admin sdk那么你可以直接这样传递。

  {
    token: token,
    data: {
      "pushType": "troyHCE",
      "digitizedCardId": "",
      "Header": "TROYHCE",
      "Type": "REQUEST_SESSION",
      "Message": "{sessionID:'xxxxxxx' }",
    },
    android: {
      "priority": "high"
    },
    webpush: {
      "headers": {
        "Urgency": "high"
      }
    }
  }

如果您使用 REST API 发送通知,请将其添加为新键“消息”的值

{
    message: JSON 
}
© www.soinside.com 2019 - 2024. All rights reserved.