GCM API密钥与发送者ID的区别

15

我对GCM Sender ID和API密钥感到困惑。 我负责构建将向Android应用程序发送通知的第三方服务器。

我需要在服务器端存储哪个? API密钥还是Sender ID? 谁负责创建这两个,Android开发人员还是我?


1
以下是获取GCM Sender Id和API Key的最新逐步过程。- http://ajaxtown.com/article/google-api-key-and-sender-id-for-web-push-notifications - Abhishek Saha
4个回答

35

我自己已经有点明白了:

  1. API密钥在控制台上生成,由第三方服务器用于与GCM进行身份验证/授权。
  2. 发送者ID由Android应用程序用于向GCM注册物理设备,以便能够从特定的第三方服务器接收来自GCM的通知。
  3. 注册ID是将物理设备注册到带有发送者ID的GCM的结果。

1
此外,项目 ID 与发送者 ID 相同。 - Vincent
第二点是回答“发送者ID有什么用?”的答案。只是为了SEO,我花了太长时间才找到这个答案。答案是它被Android设备用来识别要注册哪个Firebase项目。我想知道为什么google-services.json中的其他信息不足够,因为发送者ID就是Firebase项目ID,正如Vincent所说。 - Ben Butterworth

4
这取决于你的第三方服务器将如何工作,但通常情况下是这样的:
  1. 应用程序向GCM服务器发送一个或多个发送方ID(Google项目号)。
  2. GCM返回一个注册ID,应用程序使用它来向服务器注册。
  3. 服务器使用注册ID和API密钥通过GCM向设备发送消息。
  4. 在发送消息时,GCM会确保Google项目号和API密钥与创建注册ID所使用的相匹配。如果匹配,则发送消息。
关于开发人员如何获取此信息的详细信息可以在GCM文档中找到: http://developer.android.com/google/gcm/gs.html 根据您的需求,还有第三方商业服务器解决方案可用。

1

GCM进程依赖于两个密钥或ID。一个是在Android应用程序端创建并发送到已存储API密钥的服务器应用程序的registrationID。使用registration ID和API密钥的组合将消息推送到设备。

当Android应用程序向GCM服务器发出请求时,GCM服务器会生成注册ID。保留已创建的项目ID(在Google开发控制台上)。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接