Google GCM,令牌与注册ID

时间:2015-11-03 01:14:56

标签: android google-cloud-messaging

我对注册ID和令牌之间的关系感到困惑。在Google的GCM教程中,我们在开始时注册了注册ID。但是,我们也获得了一个令牌。现在,在图中,我们将注册ID发送到目标服务器。但是,我们也发送令牌吗?我知道令牌是从注册ID派生的。令牌是否用作GCM和应用程序之间的身份验证机制,服务器永远不知道令牌?

3 个答案:

答案 0 :(得分:19)

如果您正在寻找有关Google Cloud Messaging,IMO的基本知识,请参阅以下内容:

基本上,您需要执行以下步骤:

  1. Google Developers Console创建一个新项目。在这 步骤,为简单起见,您只需记下2个值: Project Number ,即 将在客户端项目中用作SENDER_ID;和 API server key (在 凭据 创建), 将在服务器项目中用作API_KEY
  2. 为服务器端创建一个新的简单Android项目(基本源代码作为我在以下链接中的答案)。
  3. 为客户端创建一个新的简单Android项目(基本源代码作为我在以下链接中的答案,我是根据Google Cloud Messaging - GitHub的原始来源自定义的。)
  4. 运行客户端应用程序,您将获得注册令牌(表示您的设备已成功注册)。然后,将此标记粘贴(硬编码)到服务器应用程序中的CLIENT_REGISTRATION_TOKEN变量(或编写代码以将此标记发送到服务器应用程序)。
  5. 您可以阅读以下问题中的更多内容,其中一个问题是您之前阅读过的一个问题:

    1. How to implement a GCM Hello World for Android using Android Studio
    2. Adding Google Cloud Messagin (GCM) for Android - Registration process
    3. 了解更多信息:

      来自Google Cloud Messaging: Overview

      的关键概念
        

      <强>凭据

           
          
      • 发件人ID 配置API项目时创建的唯一数值(以&#34;项目编号&#34;在Google Developers Console中提供)。在注册过程中使用发件人ID来标识允许向客户端应用程序发送邮件的应用服务器。
      •   
      • API密钥保存在应用服务器上的API密钥,可让应用服务器授权访问Google服务。在HTTP中,API密钥是   包含在发送消息的POST请求的标头中。在XMPP中,   API密钥在SASL PLAIN身份验证请求中用作   用于验证连接的密码。您何时获得API密钥   您配置您的API项目。
      •   
      • 注册令牌 GCM连接服务器向客户端应用程序发出的ID,允许其接收邮件。注意   注册令牌必须保密。
      •   

      希望这有帮助!

答案 1 :(得分:14)

GCM现在使用InstanceID的概念,它代表设备(Android或iOS)上的一个应用程序的单个安装。每个InstanceID都可以发出多个令牌。这些令牌用于标识InstanceID,可以过期和刷新。

在客户端设备上,初始化InstanceID,然后使用该InstanceID generate a token(注册令牌)。您将该令牌发送到您的服务器,该服务器使用令牌将消息发送到InstanceID(已安装的应用程序)。如果该令牌因任何原因(例如卸载了应用程序或令牌被泄露)而无效,a new token should be generated并发送到您的服务器。

答案 2 :(得分:-1)

我仍然使用注册ID方法成功注册,直至2016年5月11日

if (checkPlayServices()) {
            gcm = GoogleCloudMessaging.getInstance(this);
            regid = getRegistrationId(context);

            if (regid.isEmpty()) {
                registerInBackground();
            }
        } else {
            Log.i(TAG, "No valid Google Play Services APK found.");
        }

APA91bHLUfr71D6K7VTrRH3LGiLFxGNr3qRi3xOB_yNl0fLYsqhlgYXxHzOhQx2WKgqZI3sqxa1ZPORa0-5YBZ1_OFLm9cEg1bTh7wtrpCsHW91MSs2BMIXrHEqyjj2TeoVxnAzA5U8s