【问题标题】:GCM API key vs Sender IDGCM API 密钥与发件人 ID
【发布时间】:2012-12-12 05:08:15
【问题描述】:

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

我必须在服务器端存储哪个? API 密钥或发件人 ID?谁负责创建这两​​者,Android 开发者还是我?

【问题讨论】:

标签: push-notification google-cloud-messaging


【解决方案1】:

我自己想通了:

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

【讨论】:

  • 另外,Project ID 与 Sender ID 相同
  • 第 2 点是“发件人 ID 用于什么?”的答案。只是为 SEO 添加了这个,我花了很长时间才找到这个答案?。答案是 Android 设备使用它来识别要注册的 Firebase 项目。我想知道为什么 google-services.json 中的其他信息还不够,因为正如 vincent 所说,发件人 ID 实际上是 Firebase 项目 ID。
【解决方案2】:

这取决于您的第三方服务器的工作方式,但一般情况下它是这样工作的:

  1. 应用会向 GCM 服务器发送一个或多个作为 Google 项目编号的发件人 ID。
  2. GCM 返回一个注册 ID,应用程序使用该 ID 向服务器注册。
  3. 服务器使用注册 ID 和 API 密钥通过 GCM 向设备发送消息。
  4. 发送消息时,GCM 将确保 Google 项目编号和 API 密钥匹配并匹配用于创建注册 ID 的内容。如果他们这样做,它会发送消息。

有关开发人员如何获取此信息的信息,请参阅 GCM 文档:http://developer.android.com/google/gcm/gs.html

根据您的需要,可以使用第三方商业服务器解决方案。

【讨论】:

    【解决方案3】:

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

    注册 ID 由 GCM 服务器在 android 应用程序向它们发出请求时生成。保留已创建的项目 ID(在 Google 开发控制台中)。

    【讨论】:

      【解决方案4】:

      GCM 发件人 ID 也可能指此:

      来源:https://firebase.google.com/docs/cloud-messaging/js/client

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多