Почему InstanceID всегда возвращает токен, несмотря на неправильный senderId?

Я использую API Google Cloud Messaging для реализации клиента Android. Чтобы получить токен, я делаю:

   InstanceID ex = InstanceID.getInstance(this.getApplicationContext());
   String regId = ex.getToken(senderId, "GCM", null);

И regId всегда содержит токен, несмотря на то, что я положил на senderId. Если я установлю senderId с "123", InstanceID вернет токен! (Но я не получаю уведомления с этим токеном). Почему я всегда получаю токен? Я ожидаю исключение, или может быть нулевое значение...

1 ответ

Вы всегда можете получить токен, но вы не сможете использовать его для установки полного жизненного цикла gcm, так как instanceId привязан к вашему серверу приложений senderId,

Из гугл документации

Использовать getToken метод, подтверждающий право собственности на InstanceID и позволяющий серверам получать доступ к данным или службам, связанным с приложением. Метод следует шаблонам OAuth2 и требует авторизованного объекта и области действия. AuthorEntity может быть идентификатором проекта или другим InstanceID, и он определяет сервисы, которым разрешено использовать сгенерированный токен. Область действия определяет конкретную службу или данные, к которым токен разрешает доступ.

Чтобы понять больше жизненного цикла, обратитесь к документации

Другие вопросы по тегам