反应本机推送通知,GCM 服务器返回 401

Posted

技术标签:

【中文标题】反应本机推送通知,GCM 服务器返回 401【英文标题】:React native push notifications, GCM server returning 401 【发布时间】:2018-06-08 00:48:41 【问题描述】:

我一直在我的 React 原生项目 https://github.com/zo0r/react-native-push-notification 中使用这个 npm 模块来推送通知。在 ios 上一切正常。但在 android 上,我无法从我的 php 服务器发送推送消息。但是,我在我的 Android 设备上成功获取了设备令牌。我在 php 端使用 Api 密钥并获得错误 401 未经授权。我的php代码是从这里复制的https://gist.github.com/prime31/5675017

有什么帮助吗?

【问题讨论】:

您可能想参考这些帖子:1 和 2。如果您在没有进行任何特定更改(服务器密钥)的情况下突然开始遇到此错误(服务器密钥),您可能需要将项目导入 Firebase。另外,尝试将服务器的 IP 列入白名单。默认情况下,这对于浏览器密钥不是必需的,但对于服务器密钥是必需的。 【参考方案1】:

错误代码 401 表示无法验证用于发送邮件的发件人帐户。可能的原因有: 1. HTTP 请求中缺少授权标头或语法无效。 2. 作为密钥发送的项目编号无效。 3. 密钥有效但 GCM 服务已禁用。 4. 请求来自未在服务器密钥 IP 中列入白名单的服务器。

更多详情请参考this文档

【讨论】:

以上是关于反应本机推送通知,GCM 服务器返回 401的主要内容,如果未能解决你的问题,请参考以下文章

GCM 的 API 密钥突然失效?未经授权的 (401) 错误

在 ASP.NET 中为 manifest.json GCM 推送通知获取未经授权的 401

Google GCM 服务器返回未经授权的错误 401

Android GCM Java 服务器 - 没有消息数据的推送通知

需要在 Cordova 应用程序中使用本机 APNs/GCM 为 iOS 推送通知的指导

是否可以要求 GCM 服务器无法向过期/过时的注册 ID 推送通知?