获取用于 Google Cloud Messaging 的 API 密钥

Posted

技术标签:

【中文标题】获取用于 Google Cloud Messaging 的 API 密钥【英文标题】:Getting an API key to use with Google Cloud Messaging 【发布时间】:2013-11-08 19:02:53 【问题描述】:

我正在开发一个 android 应用,我想开始测试推送通知。从代码的角度来看,我已经准备好了。我目前的挑战是我根本不知道如何从 Google 获取 Google Cloud Messaging API 密钥。

网上有大量的教程和视频展示了如何在大约 10 秒内完成此操作,但 Google 最近将其更新为 developer center,而且这些教程似乎不再适用。目前的流程看起来很繁琐,和我在网上看到的完全不一样。

我意识到这几乎不能作为一个编程问题(如果有的话)通过,但如果没有来自 Google 的 API 密钥,我什至无法开始开发任何东西。

有人能指出我正确的方向吗?

【问题讨论】:

Google 云消息传递 -- 2018 年 4 月 10 日已弃用 developers.google.com/cloud-messaging/android/client 【参考方案1】:

CommonsWare 大约三年前 (2013 年)。这是对他的回答的修订。

注意:即使您已经启用了任何服务并拥有 API 密钥,这仍然可以工作。

    使用您的谷歌帐户登录Google Services。 (这与 Google 控制台不同)

    点击选择平台

    点击为 Android 启用服务

    填写应用名和包名

    选择云消息传递(或您想要的任何其他服务。您可以稍后再回来添加更多)

    点击生成配置文件

    繁荣。 Server API key

    Cloud Messaging 卡的顶部

    另外,您需要下载google-services.json 文件并将其复制到Android 项目中的app/mobile/ 模块目录

【讨论】:

希望足够多的赞成票能让这个答案排在首位。但是,可以通过开发者控制台生成 API 密钥,我给 CommonsWare 留下了一条消息,让他(他们)知道这一点。 我在“应用名称”中获得的唯一选项是“Google Play Android 开发者”。我想在 Play 商店中引用我的应用程序,但它们似乎没有出现。我不知道的“Google Play 开发者控制台”和“Google 开发者控制台”之间有什么区别吗?如果是这样,我如何链接它们?如果它们已经链接,那么我在引用应用程序时为 #4 使用什么名称(应用商店名称不好,因为我的应用程序有一个 '&' 并且该字符在 #4 中是不允许的。 @kraftydevil 是的,您的应用名称只是您的标识符。在您手动输入之前,您的包名不会出现。 @Chad Bingham:你拯救了我的一天。上帝保佑你 @ChadBingham 你是最棒的【参考方案2】:

但谷歌最近更新了它的开发者中心,似乎没有任何教程适用了

:: 叹息::

对于我的下一本书更新还有更多工作......

目前的流程看起来很繁琐,和我在网上看到的完全不一样。

请记住,我已经设置好钥匙,因此可能会看到与没有钥匙的人有些不同的东西:

第 1 步:使用您的 Google 帐户登录 https://cloud.google.com/console

第 2 步:在左侧导航中,进入“APIs & auth > APIs”

第 3 步:找到“Google Cloud Messaging for Android”并点击旁边的“关闭”按钮(注意:这可能需要同意附加服务条款)

第 4 步:在左侧导航中,进入“APIs & auth > Registered apps”

第 5 步:显然要等很长时间。

第 6 步:点击红色的 REGISTER APP 按钮。

第 7 步:为应用命名并选择 Web 应用,然后点击注册

第 8 步:点击服务器密钥的“服务器密钥”部分

【讨论】:

呃...我是个白痴...ish。之前尝试注册我的应用程序时,我选择了“Android”,这要求我输入我没有并且暂时不会有的其他信息。使用“网站”注册应用程序让一切变得超级简单……假设生成的 API 密钥有效。 我永远不会猜到会选择 WebApplication 而不是 Android 。当我选择 Android 作为平台时,我正在努力使用生成的 API 密钥.....甚至传递了我的电话号码:X 进入“APIs & auth > Registered apps” 不。不在那里。 @nVentimiglia:这个答案大约有 18 个月的历史,Google 会不时重新设计网站。由于我通常避免使用 Play 服务,因此我无法告诉您当前的网站结构是什么。 @CommonsWare ::sigh:: 是对的,它再次更新,这篇文章很旧。从第 2 步开始,而不是 APIs 转到 Credentials -> 创建新密钥 -> 单击服务器密钥 -> 输入您希望将其限制在的 IP 范围(或留空)-> 单击创建,完成。跨度> 【参考方案3】:

Google 最近已将其 api 控制台更新为 Google Cloud Console。 简而言之,您需要创建一个 Android 应用程序并选择通过 Web 服务器访问 API。 this service has a detailed guide for that

【讨论】:

似乎我们中的一些人没有看到“注册的应用程序”子菜单选项。 这可能是权限问题 - 您是否拥有该 Google 帐户的管理员权限? 原来他们已经重命名/移动了关于(至少在 I 得到的视图中)的选项,但没有更新他们的文档以反映这一点。转到 API 和身份验证 > 凭据。如果您只是希望您的网络应用程序发送 GCM,请使用“服务器应用程序密钥”中的 API 密钥值 - 您需要将您的 IP 地址添加到列表中。 他们现在更新了他们的文档...据我了解,您需要一个浏览器密钥,并且不要在 ip 列表中添加任何内容【参考方案4】:

配置 GCM API 密钥和发件人 ID 的最简单方法是使用您的帐户登录 Google 并继续向导:https://developers.google.com/mobile/add :)

【讨论】:

这是目前的做法!【参考方案5】:

获取网络应用的 FCM(Firebase 云消息传递)密钥

    登录Firebase

    点击“添加项目”大按钮创建一个新应用

    稍等几秒,看圆圈追尾

    点击“将 Firebase 添加到您的网络应用”

    复制 api 密钥

【讨论】:

以上是关于获取用于 Google Cloud Messaging 的 API 密钥的主要内容,如果未能解决你的问题,请参考以下文章

谷歌云消息服务的可靠性

如何获取或生成Google Cloud Run服务的部署URL

从 Google Cloud Pub/Sub 而不是 base64 获取未编码的数据

com.google.android.gms.common.internal.safe parcel.safe parcelable 未找到

如何将 google-api-client 用于 Google Cloud Logging

如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?