Amazon SNS:重新输入之前有效的 GCM API 密钥时出现“平台凭证无效”

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

自今年 4 月以来,我们一直在使用 Amazon SNS 发送 Android 推送通知。

推送已发送,没有任何问题,但云控制台中从未有任何调用云消息 API 的记录(看起来很奇怪?)。

今天我为静态地图服务创建了一个新的 API 密钥(无关),并重命名了我们的 Cloud Messaging API 密钥(只是名称,密钥是相同的)。从此时起,尚未发送任何推送,并且尝试在 AWS 中创建新的平台应用程序(或更新现有平台应用程序)会导致:

参数无效:属性原因:平台凭证无效(服务:AmazonSNS;状态代码:400;错误代码:InvalidParameter;请求 ID:)

我还尝试使用导致未经授权 (401) 的密钥手动调用 https://gcm-http.googleapis.com/gcm/send 端点。

有趣的是,我可以使用今天创建的密钥调用上述端点,但是它们在 MismatchSenderId 上失败。

我在 API Manager 中看不到 Cloud Console 之前的很多选项(服务器/浏览器密钥等)?

amazon-web-services google-cloud-messaging
5个回答
22
投票

对于那些在 2017 年面临这个问题的人,这里有一个提示:

1 - 转到您的 Firebase 控制台 (https://console.firebase.google.com/) 单击您的项目(您要用于推送通知的项目)

2 - 单击项目名称右侧的“三个点”,然后单击“设置”

3 - 单击标题选项卡上的“云消息”

4 - 复制“服务器密钥”(这个比您的 API 密钥大)

5 - 粘贴到“创建平台应用程序”的 AWS 表单的“API 密钥”输入中

PS:请注意,这仅对 GCM 推送通知有效。


17
投票

GCM 的 API 密钥管理已移至 Firebase 控制台。 您可以创建一个新的 Firebase 项目(或导入现有的云项目),并且您应该获得一个新的云消息传递服务器密钥。

请参阅更新的文档:
https://developers.google.com/cloud-messaging/android/client#create-an-api-project
以及堆栈溢出问题:在哪里可以找到 Firebase Cloud Messaging 的 API KEY?

如果仍有问题请联系:
https://firebase.google.com/support/contact/troubleshooting


2
投票

我在创建 Amazon SNS 平台应用程序时遇到了同样的错误:

Invalid parameter: Attributes Reason: Platform credentials are invalid (Service: AmazonSNS; Status Code: 400; Error Code: InvalidParameter; Request ID:)

按照迭戈的建议联系 Firebase 支持后,这是我从 Google 得到的回复:

希望您一切顺利,感谢您与我们联系。

我不太熟悉 Amazon SNS,看起来他们的集成仍然是 GCM,而不是 FCM。如果您的应用程序实现仍然是 GCM,那么您需要使用 FCM 进行迁移才能在控制台中使用服务器密钥。请参阅此处的说明。

此外,Firebase 已将服务器密钥升级到新版本。我们建议使用服务器密钥而不是旧服务器密钥。

我希望这有帮助。如果您还有任何其他疑虑,请告诉我。谢谢你。

这表明我们必须更改应用程序代码。通过创建一个新的 Firebase 项目并将旧服务器密钥与 Amazon SNS 结合使用,我们能够为组织中的另一个应用程序实现此功能。

在某个时候,我们肯定会升级到使用 FCM,但目前我们的截止日期很紧。

更新: 所以最后对我们有用的是使用 Project Settings --> Cloud Messaging 下的“服务器密钥”。该应用程序仍然使用 GCM 实现。 Amazon SNS 对此密钥感到满意,并生成了 GCM 平台推送应用程序。推动有效! 仍然对为什么“旧服务器密钥”不适用于一个应用程序但适用于另一个应用程序感到困惑。但我不会再深入研究它。


1
投票

对于那些开始新项目并想知道为什么它仍然无效的人,请确保应用程序

Key restriction
设置为
Android apps
。就我而言,它仅设置为
None
,当我切换到 Android 应用程序时,它会在更新后 5 到 10 分钟后工作。您需要添加包名称和 SHA-1 证书指纹。


0
投票

2024 年: 在 Firebase 中,转到:项目设置 -> 服务帐户 -> Firebase 管理 SDK 选项卡。并生成

new private key
。将此密钥广告到 SNS
service json
字段

© www.soinside.com 2019 - 2024. All rights reserved.