收到无效的 JSON 有效负载。未知名称 click_action

     2023-04-19     185

关键词:

【中文标题】收到无效的 JSON 有效负载。未知名称 click_action【英文标题】:Invalid JSON payload received. Unknown name click_action 【发布时间】:2018-08-01 20:14:09 【问题描述】:

所以我目前正在开发 PWA。

我现在正在使用推送通知,并且我已经能够使用以下非常简单的 JSON 结构接收后台和前台通知。


  "message":
    "token":"aValidToken",
    "notification": 
      "title": "New Content!",
      "body": "A new video has been uploaded."
    
  

我还能够添加一个包含其他信息的数据成员,并且仍然可以轻松地收到通知。

现在的问题是,如果我想向 JSON 添加另一个成员,例如 click_action,我会发布以下内容:


  "message":
    "token":"aValidToken",
    "notification": 
      "title": "New Content!",
      "body": "A new video has been uploaded.",
      "click_action":"https://www.google.com.ar/"
    
  

我收到以下错误:


    "error": 
        "code": 400,
        "message": "Invalid JSON payload received. Unknown name \"click_action\" at 'message.notification': Cannot find field.",
        "status": "INVALID_ARGUMENT",
        "details": [
            
                "@type": "type.googleapis.com/google.rpc.BadRequest",
                "fieldViolations": [
                    
                        "field": "message.notification",
                        "description": "Invalid JSON payload received. Unknown name \"click_action\" at 'message.notification': Cannot find field."
                    
                ]
            
        ]
    

几乎所有其他成员都会发生这种情况,例如:优先级、图标、声音、徽章等。

最后,我尝试在 setBackgroundMessageHandler(确实被调用)中硬编码 iconclick_action,但无济于事。没有图标出现,点击通知时没有任何反应。

messaging.setBackgroundMessageHandler( (notif) => 

  const notificationTitle = notif.notification.title;
  const notificationOptions = 
    body : notif.notification.body,
    icon : '/assets/icon/icon72x72.png',
    click_action : 'https://www.google.com.ar/'
  ;

  return self.registration.showNotification(notificationTitle, notificationOptions);
);

这纯粹是一个 Ionic PWA 项目,旨在在移动浏览器和桌面上运行。我会很感激你能给我的每一个小费!谢谢!

【问题讨论】:

服务获取到 JSON 字符串后会做什么。我的猜测是它需要特定的参数,而 click_action 不是一个有效的参数。 来自 Firebase 文档:> 对于从应用服务器发送的通知消息,FCM JavaScript API 支持 click_action 键。这通常设置为您的网络应用程序中的一个页面,这样当用户点击通知时,您的应用程序就会被带到前台。 奇数。代码和有效负载看起来不错。您可以尝试通过 Postman 测试发送消息,看看它是否显示相同的错误?这是sample 我将其作为评论留在这里,请确保您没有传递包含其他对象作为数据的对象,因为这也会触发该错误。您只能将字符串作为值传递。如果你想传递复杂的结构,确保你stringify他们作为json把它们放在data中。 【参考方案1】:

您似乎正在使用新的 API:https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages

但尝试使用旧版 API 中的字段: https://firebase.google.com/docs/cloud-messaging/http-server-ref

您可以使用您正在使用的 API 定义一个图标,但您的有效负载必须是:


  "message": 
    "token": "aValidToken",
    "webpush": 
      "notification": 
        "title": "New Content!",
        "body": "A new video has been uploaded.",
        "icon": "your_icon"
      
    
  

您可以找到有关 webpush 通知字段here 的更多信息。

仅供参考,您提到的大多数其他字段(优先级、声音、徽章)在 Web 上尚不受任何 API 支持。

编辑(2018 年 5 月 10 日):新 API 现在支持所有 notification properties(优先级、图标、声音、徽章等)。详情请见this guide。

【讨论】:

优秀的工作就像一个魅力!一个快速的后续问题是......我应该在 headers 对象中发送什么? 你不需要发送任何东西,除非你需要像replacing messages 或setting an expiration date 这样的东西。我不确定 FCM 是否支持所有标头。 在我的例子中,该图标仅在尺寸小于 72px x 72px 时才有效

C# Google API - 收到无效的 JSON 有效负载

】C#GoogleAPI-收到无效的JSON有效负载【英文标题】:C#GoogleAPI-InvalidJSONpayloadreceived【发布时间】:2020-12-0114:11:30【问题描述】:我即将向googlesAPI创建一个请求,目的是更改gmail帐户的签名。这是触发错误的请求部分。如果我将“签... 查看详情

GCM 无效的 JSON 缺少有效负载

...CMdocs中的示例进行操作。但是,当我调用send_command时,我收到“InvalidJson:MissingPayload”错误响应(400)。我在这里想 查看详情

Firebase FCM - 为啥会收到:有效负载错误,无效的“android”(或“apns”)属性

】FirebaseFCM-为啥会收到:有效负载错误,无效的“android”(或“apns”)属性【英文标题】:FirebaseFCM-WhyamIgetting:payloaderror,invalid\'android\'(or\'apns\')propertyFirebaseFCM-为什么会收到:有效负载错误,无效的“android”(或“apns”)属性... 查看详情

Postman 中的 JSON 帖子有效负载无效

】Postman中的JSON帖子有效负载无效【英文标题】:InvalidJSONPostPayloadinPostMan【发布时间】:2018-08-2209:28:16【问题描述】:为什么这不是PostMan中有效的rawJSON(application/json)POST负载?["keyOne":"valueOne","keyTwo":"valueTwo"]【问题讨论】:【参... 查看详情

如果未知属性或空属性已作为 json 有效负载的一部分发送,则在 spring boot rest 中验证 json 有效负载以引发错误

】如果未知属性或空属性已作为json有效负载的一部分发送,则在springbootrest中验证json有效负载以引发错误【英文标题】:validatejsonpayloadinspringbootresttothrowerrorifunknownpropertyoremptypropertyhasbeensentaspartofjsonpayload【发布时间】:2017-12-07... 查看详情

python google sheet API的无效JSON有效负载错误

】pythongooglesheetAPI的无效JSON有效负载错误【英文标题】:InvalidJSONPayloaderrorwithpythongooglesheetsAPI【发布时间】:2017-11-2603:46:26【问题描述】:我正在尝试使用googlesheetAPI将新行附加到现有的googlesheet。身份验证已经成功进行,并且... 查看详情

Firebase 云消息传递 - 发布消息说 JSON 有效负载无效

】Firebase云消息传递-发布消息说JSON有效负载无效【英文标题】:FirebaseCloudMessaging-PostingMessageSaysInvalidJSONPayload【发布时间】:2019-06-1200:18:25【问题描述】:所以我使用jQueryAjax发布使用我必须从某人的node.js应用程序获取的不记名... 查看详情

wso2 无法保存 JSON 有效负载。找到无效的输入流

】wso2无法保存JSON有效负载。找到无效的输入流【英文标题】:wso2CouldnotsaveJSONpayload.Invalidinputstreamfound【发布时间】:2015-06-1914:11:28【问题描述】:这是我在WSO2中的第一个RESTAPI,在wso2中的顺序如下。<?xmlversion="1.0"encoding="UTF-8"... 查看详情

在 android 中收到的 FCM 数据有效负载不是 json 格式

】在android中收到的FCM数据有效负载不是json格式【英文标题】:FCMDatapayloadreceivedinandroidnotinjsonformat【发布时间】:2018-09-2020:06:11【问题描述】:我从Firebase获取的数据负载不是json格式,而是获取自定义键值对,格式如下:DataPaylo... 查看详情

AFNetworking 序列化正斜杠使 JSON 有效负载无效

】AFNetworking序列化正斜杠使JSON有效负载无效【英文标题】:AFNetworkingserializesforwardslashmakingtheJSONpayloadinvalid【发布时间】:2015-10-0903:03:55【问题描述】:我正在使用AFNetworking2.0。在AFNetworking,AFHTTPRequestOperationManager对象有一个API... 查看详情

无效的捆绑结构 - 不包括有效负载目录

...9-0312:20:33【问题描述】:将二进制文件上传到iTunes后,我收到“无效二进制文件”和以下邮件:尊敬的开发者,我们发现了一个或多个问题您最近的交货。要处理您的交货,以下问题必须是更正:无效的包结构-您的包包含一个... 查看详情

GCM 未在通知中使用来自 JSON 有效负载的数据

...以下JSON,但我无法通过客户端获取正确的响应数据。我收到了推送通知响应,但标题是应用程序的名称,并且文本显示:“消息”,因此我无法正确显示我的通知。这是我要发送的JSON: 查看详情

Laravel DecryptException - 有效负载无效

...7【问题描述】:我正在向我的LaravelAPI发送AJAX发布请求并收到此错误消息:compiled.php第13235行中的DecryptException:负载无效。我正在从cookie中读取XSRF-TOKEN,并将其作为 查看详情

错误 ITMS-90596:“无效的捆绑包。有效负载的资产目录”

...为我的项目构建一个ipa并使用ApplicationLoader上传它,但我收到一个错误,请参见下面的屏幕截图:几分钟前我已经成功上传了同 查看详情

使用自定义网络的 gke 集群部署

...一个yaml文件以在我创建的自定义网络中部署gke集群。我收到一个错误收到JSON有效负载。未知名称“网络”:找不到字段。”我尝试了一些资源名称,但仍然遇到同样的问题资源:-名称:myclus类型:container.v1.cluster特性 查看详情

看似有效的代码中的未知类型名称“GsetBrakeMode”[重复]

...布时间】:2021-08-3115:00:01【问题描述】:在某些IDE中,我收到了一个错误,但在其他IDE中却可以正常工作。我想知道问题是什么以及我能做些什么来解决它。typedefenumcustom_brakeBRA 查看详情

将 HTML 有效负载解析为 JSON

...我遇到了以下有效负载的问题。我在API调用的Node.js后端收到的有效负载如下。"id":"1","content":"text":"<body><div><table><thead><tr><th><s 查看详情

如何修复无效的随机字符串以使其 JSON 有效

】如何修复无效的随机字符串以使其JSON有效【英文标题】:HowtofixaninvalidrandomstringtomakeitJSONvalid【发布时间】:2022-01-0400:55:42【问题描述】:在Javascript中,我需要“修复”一个字符串,它应该是JSON有效的,但可能不是。该字符... 查看详情