Android GCM SENDER_ID与API_KEY使用情况

时间:2016-02-01 06:33:54

标签: android google-cloud-messaging google-play-services

我正在将GCM集成到我的应用程序中。我做了一个R& D 2年前,用户可以发送主要活动的详细信息,如此

GCMRegistrar.checkDevice(this);
        GCMRegistrar.checkManifest(this);
        String regId = GCMRegistrar.getRegistrationId(this);
        if (regId.equals("")) {
          GCMRegistrar.register(this, SENDER_ID);   
        } else {
          Log.v(TAG, "Already registered");
        }

在这里我们可以发送SENDER_ID,这是api密钥(如果我记得正确的话,像AIxxxxxxxxxxxxxp-xxxxx_xxxx_2xxxxxx2_De)。

但我们如何使用示例应用程序发送此内容。生成的SENDER_Id与API_KEY和SERVER_API_KEY之间有什么区别。这是如何实现的? 我已经通过这个链接https://developers.google.com/cloud-messaging/registration了。但是混淆了。任何人都可以帮助我这些

  1. SENDER_ID,API_KEY和SERVER_API_KEY。那些是什么?他们何时何地使用?
  2. 在调试模式下使用google-service.json文件?已经通过链接What does google-services.json really do?
  3. 我们需要手动填写json中的条目,还是由android api填充?喜欢 “oauth_client”:[], “api_key”:[],
  4. 在RegistrationIntentService.java中的以下行中。 R.string.gcm_sender_id基本上是SENDER_ID或API_KEY String token = instanceID.getToken(getString(R.string.gcm_sender_id),                     GoogleCloudMessaging.INSTANCE_ID_SCOPE,null);
  5. 还有任何基于最新GCM集成的教程(除了developer.android提供的示例)

    帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. SENDER_ID是13位(当前)数字字符串,它是在Google Developer Console中创建的Google项目的项目编号,用于客户端注册应用程序并获取{{ 1}}(device token),当您向gcm end服务器发送通知时,它将用作收件人。

    registration_idAPI_KEY是同一个东西,它们是以AIza开头的40个字符的字符串,它们用作身份验证,因此GCM服务器知道谁在发送通知并且该人是否有权利向SERVER_API_KEY人发送通知(最初发送到registration_id,就像SENDER_ID来自的地方一样。

  2. 2和4。在调试模式下,文件的使用是传递registration_id,这是问题4中SENDER_ID的来源。

    1. 我不太明白这个问题,R.string.gcm_sender_id用于服务器端,Android客户端不需要处理它。