要发送GCM,我们有来自Google API控制台的SENDER ID,对于保护SENDER ID很重要吗?我的意思是,如果有人知道这个ID会有人做坏事吗?我犯了一个错误,我认为ID在我的一个项目中...我能以某种方式改变它吗?我无法通过查看Google API控制台找到更改它!我应该担心吗?还是没事?
可以更改服务器和浏览器API密钥,但不能更改SENDER ID,PROJECT NUMBER ...
答案 0 :(得分:5)
是的,您应该保持project number
(对于GCM而言Sender Id
)受到保护;否则任何人都可以使用它,它将计入您对 API的使用。它类似于任何其他服务的API密钥,例如谷歌地图。
除了创建新的Google帐户之外,我不知道有任何方法可以更改它,但在Google API控制台的控制台中,可以选择注册/生成Project ID
,但我不确定是否GCM将接受此为Sender Id
。你可以尝试一下。
修改强>
如果您的project number
被曝光(在旧API中,发件人ID是您的电子邮件)可能没那么危险,因为您仍然需要API key
才能通过GCM
答案 1 :(得分:2)
我想补充说,虽然单独使用project ID
不能通过GCM发送通知,但是其他Android应用程序可以使用它来注册GCM并接收来自服务器的通知。当然,为了从您的服务器接收通知,该应用程序必须首先联系您的服务器以发送其Registration Id
,因此根据服务器实现,您可以阻止发生这种情况。
答案 2 :(得分:0)
据我所知:
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)因此,根据我的理解,SenderID应该包含在您的GCM应用程序中,并且不受保护。