Почему 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, и он определяет сервисы, которым разрешено использовать сгенерированный токен. Область действия определяет конкретную службу или данные, к которым токен разрешает доступ.
Чтобы понять больше жизненного цикла, обратитесь к документации