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

2024-04-07

所以我目前正在开发一个 PWA。

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

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

我还能够添加一个包含其他信息的数据成员,并且仍然可以收到通知而不会带来任何不便。

现在的问题是如果我想添加另一位成员到 JSON,例如点击动作,我发布以下内容:

{
  "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."
                    }
                ]
            }
        ]
    }
}

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

最后,我尝试过硬编码icon and 点击动作 in the 设置背景消息处理程序(确实被调用)无济于事。没有图标出现,单击通知时没有任何反应。

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);
});

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


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

但尝试使用旧 API 中的字段:https://firebase.google.com/docs/cloud-messaging/http-server-ref 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 https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages#webpushconfig.

FYI, most of the other fields you mentioned (priority, sound, badge) are not yet supported on web with either API.

编辑(2018 年 5 月 10 日):全部通知属性 https://developer.mozilla.org/en-US/docs/Web/API/notification新的 API 现在支持(优先级、图标、声音、徽章等)。看本指南 https://firebase.google.com/docs/cloud-messaging/js/first-message#add_web_push_properties_to_a_notification_payload了解详情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

收到无效的 JSON 负载。未知名称 click_action 的相关文章

随机推荐

  • DRF:可在序列化器选择字段“选择”中调用

    我有一个带有 所有者 字段的管理序列化器 我希望当前用户填充此字段的选择 但在运行迁移时我收到 TypeError 表明 drf 不支持序列化器选择字段的可调用项 django 支持模型选择字段的可调用项 但显然用户会随时更改 因此我希望在
  • 使用 numpy 进行矢量化基数排序 - 它能击败 np.sort 吗?

    numpy 没有yet https github com numpy numpy issues 6050有一个基数排序 所以我想知道是否可以使用预先存在的 numpy 函数编写一个基数排序 到目前为止 我有以下方法 它确实有效 但比 num
  • 可变参数模板参数包扩展用于函数调用

    我正在寻找类似的东西 template lt typename T gt void func T t template lt typename Parms gt void anyFunc Parms p func
  • 在哪里可以找到 php.ini?

    今天我需要安装 IBM DB2 库 我完成了 make install 的所有步骤 并在中找到了 ibm db2 so PHP HOME lib extensions somecomplicatedname ibm db2 so 最重要的是
  • 实现自定义滚动条

    我对 Angular 世界还很陌生 我正在开发一个涉及 Angular JS 的应用程序 我遇到了实现自定义滚动条的要求 我的应用程序也有 jQuery 但到目前为止我的项目的大部分都使用 Angular 那么我应该使用一些 jQuery
  • Java中抽象类调用子类构造函数

    public abstract class Parent private Parent peer public Parent peer new to call overloaded constructor public Parent Str
  • PuLP目标函数中ABS()的数学运算

    我正在尝试在 PuLP 中构建 LP 问题 因为我是 python 新手 想知道如何使用绝对值运算编写目标函数 到目前为止 我一直在使用 AMPL 来制定问题 现在想将整个模型转换为 Python 谁能帮我理解如何编码 SUM ABS x
  • RabbitMQ 中多个消费者如何订阅同一主题并获取同一消息

    首先 我知道类似问题已经有答案了here https stackoverflow com questions 10620976 rabbitmq amqp single queue multiple consumers for same m
  • 以 BFS 风格将深度的嵌套字典(森林)写入文本文件

    继续我的旧问题 将深度巨大的嵌套字典 森林 写入文本文件 https stackoverflow com questions 51500003 writing nested dictionary forest of a huge depth
  • 全文检索中的多个同义词词典匹配

    我正在尝试在 PostgreSQL 8 3 中进行全文搜索 它工作得非常好 所以我添加了同义词匹配 例如 bob robert 使用同义词词典 这也很好用 然而 我注意到它显然只允许一个词有one代名词 那是 al不可能是albert or
  • XLAM / XLA Addins:有更好的方法吗?

    这篇文章是关于在不创建链接的情况下安装 XLAM 的 每个人都讨厌链接 考虑一下这个简单的插件 Public Function UDF HELLO x UDF HELLO Hello x End Function 将此代码 而不是其他任何内
  • 如何使用 knp 实验室可翻译学说行为访问翻译属性

    我正在使用可翻译的学说 并且我有一个具有可翻译属性的实体 这看起来像这样 class Scaleitem Must be defined for translating this entity use ORMBehaviors Transl
  • Ubuntu 中的 Eclipse:悬停背景颜色属性在哪里?

    我更改了悬停代码时可见的背景颜色 黑色 例如 当您将鼠标悬停在某个方法上时 您会在一个框中看到其签名 我的意思是那个盒子的背景颜色 我想更改它 但我在任何地方都找不到该属性 你知道它是什么财产吗 它应该是一个全球财产 因为其他框使用相同的背
  • 检查三个布尔值中是否至少有两个为 true

    最近一位面试官问了我这个问题 给定三个布尔变量 a b 和 c 如果三个中至少有两个为 true 则返回 true 我的解决方案如下 boolean atLeastTwo boolean a boolean b boolean c if a
  • Array.prototype.sort() 时间复杂度是多少?

    根据 Mozilla 文档 无法保证排序的时间复杂度和空间复杂度 取决于实施 至少可以安全地假设它不是O n 2 有没有关于它如何实施的更详细的数据 谢谢 火狐使用归并排序 https medium com nandodrw merge s
  • Magento Mage::getUrl 带后缀

    当 url 具有 html 后缀时 在 magento 中处理生成 url 的正确方法是什么 例如 获取以下产品 url 类别 产品 html 你不能简单地做Mage getUrl mycategory myproduct html or
  • 通过填充 UIImageView 图层边框宽度的颜色来动画进度

    我有 UIImageView 我把它做成了带有宽度层的圆形 如下图所示 用户可以更新图像并上传新图像 上传图像时我有一个进度回调 我想要的是在上传图像时用颜色对边框进行动画处理 例如 当用户单击上传时 边框从顶部开始为绿色 并根据进度填充宽
  • 自定义函数缺少参数 2

    因此 我尝试在保存更改后将原始的 post title 替换为同一篇文章右侧的自定义字段 但是 我在帖子页面上收到以下错误 警告 第 113 行 PATH public html wp content themes THEME functi
  • Chocolatey的正确使用(包更新/版本管理)

    注意 这个问题对于 Chocolatey 0 9 8 及以下版本有效 后来的版本从PowerShell脚本完全重写为C 应用程序 并且包管理的整个过程得到了很大的改进 我一直在使用巧克力味一段时间了 一开始我很兴奋 但过了一段时间我不确定它
  • 收到无效的 JSON 负载。未知名称 click_action

    所以我目前正在开发一个 PWA 我现在正在与推送通知我已经能够使用以下非常简单的 JSON 结构接收后台和前台通知 message token aValidToken notification title New Content body