要发送 GCM,我们有一个来自 Google API 控制台的 SENDER ID,保护该 SENDER ID 重要吗?我的意思是,如果他们知道那个ID,他们会做坏事吗?我犯了一个错误,我认为那个 ID 在我的一个项目中......我能以某种方式改变它吗?通过查看 Google API 控制台,我无论如何都找不到更改它!我应该为此担心吗?或者可以吗?
可以更改服务器和浏览器 API 密钥,但不能更改 SENDER ID、PROJECT NUMBER...
要发送 GCM,我们有一个来自 Google API 控制台的 SENDER ID,保护该 SENDER ID 重要吗?我的意思是,如果他们知道那个ID,他们会做坏事吗?我犯了一个错误,我认为那个 ID 在我的一个项目中......我能以某种方式改变它吗?通过查看 Google API 控制台,我无论如何都找不到更改它!我应该为此担心吗?或者可以吗?
可以更改服务器和浏览器 API 密钥,但不能更改 SENDER ID、PROJECT NUMBER...
是的,您应该保护project number
(Sender Id
对于 GCM 也是如此);否则任何人都可以使用它,它将计入您对 API 的使用。它类似于任何其他服务(例如 Google 地图)的 API 密钥。
除了创建一个新的 Google 帐户之外,我不知道有任何更改它的方法,但是在 Google API 控制台的仪表板中有一个注册/生成的选项,Project ID
但我不确定 GCM 是否会接受它作为Sender Id
. 你可以试一试。
编辑:
project number
如果您被暴露(在旧 API 中,发件人 id 是您的电子邮件)可能不会那么危险,因为您仍然需要API key
能够通过 GCM 发送通知
我想补充一点,虽然project ID
单独不能用于通过 GCM 发送通知,但它可以被另一个 Android 应用程序用于注册到 GCM 并从您的服务器接收通知。当然,为了从您的服务器接收通知,该应用程序必须首先联系您的服务器以发送它的Registration Id
,因此根据服务器实现,您可以阻止这种情况发生。
据我了解:
1)SenderID == ProjectID(如 iTech 注释)
2) SenderID/ProjectID在构建时通过“googleservices.json”嵌入到您的应用程序中
3)您的应用程序使用&要求您的 SenderID(通过R.string.gcm_defaultSenderId)使用以下代码向 GCM 注册:
String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId), GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
4) Thus, as per my understanding, it is by design that SenderID should be included in your GCM app, and is not protected.