Android GCM SENDER ID 与 API KEY 使用情况
Posted
技术标签:
【中文标题】Android GCM SENDER ID 与 API KEY 使用情况【英文标题】:Android GCM SENDER_ID vs API_KEY usage 【发布时间】:2016-02-01 06:33:54 【问题描述】:我正在将 GCM 集成到我的应用程序中。 2 年前我做了一项研发,用户可以像这样发送主要活动的详细信息
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals(""))
GCMRegistrar.register(this, SENDER_ID);
else
Log.v(TAG, "Already registered");
在这里我们可以发送 SENDER_ID,它是 api 密钥(如果我没记错的话,比如 AIxxxxxxxxxxxxxp-xxxxx_xxxx_2xxxxxx2_De)。
但是我们如何使用示例应用发送它。生成的 SENDER_Id 与 API_KEY 和 SERVER_API_KEY 有什么区别。这是如何实施的? 我已经通过这个链接https://developers.google.com/cloud-messaging/registration。却一头雾水。任何机构都可以帮我解决这些问题
-
SENDER_ID、API_KEY 和 SERVER_API_KEY。那些是什么?它们在何时何地使用?
在调试模式下使用 google-service.json 文件?已经通过链接What does google-services.json really do?
是需要手动填写json里面的entry,还是android api的填写?输入喜欢
“oauth_client”:[],
"api_key": [],
在下一行取自 RegistrationIntentService.java。 R.string.gcm_sender_id 基本上是 SENDER_ID 或 API_KEY
字符串令牌 = instanceID.getToken(getString(R.string.gcm_sender_id),
GoogleCloudMessaging.INSTANCE_ID_SCOPE,空);
还有基于最新的 GCM 集成实现的教程(除了 developer.android 提供的示例)
我们将不胜感激。
【问题讨论】:
【参考方案1】:SENDER_ID
是 13 位(当前)数字字符串,它是您在 Google Developer Console 中创建的 Google 项目的项目编号,用于在客户端注册应用程序并获取 device token
(registration_id
),然后在您向 gcm 终端服务器发送通知时用作收件人。
API_KEY
,SERVER_API_KEY
是同一个东西,都是以AIza开头的40个字符的String,它们被用作认证,所以GCM服务器知道谁在发送通知,这个人是否有权发送通知那些registration_id
(最初是SENDER_ID
,因为那是registration_id
的来源)。
2&4。在调试模式下,文件的使用是传入SENDER_ID
,这就是你问题4中R.string.gcm_sender_id
的来源。
-
不太明白这个问题,
API_KEY
是服务端使用的,Android客户端应该不需要处理。
【讨论】:
好的明白了。根据第 3 点,我的问题是,如果您打开 google-service,json,它有很多空值,就像我在问题中给出的那样。我们是否需要手动填写这些值,否则 GCM API 会处理这些。?以上是关于Android GCM SENDER ID 与 API KEY 使用情况的主要内容,如果未能解决你的问题,请参考以下文章
多个站点 Web 推送是不是需要多个 gcm_sender_id?
(GCM - MISMATCH SENDER ID) 使用多个推送服务时