Идентификатор регистрации центра уведомлений Windows Azure и местоположение токена?

Я использую концентратор уведомлений Windows Azure для отправки уведомлений пользователям в моем приложении для Android. У меня в приложении есть какой-то чат, и я хотел бы отправлять уведомления только определенным пользователям. Я предполагаю, что я должен указать их теги при отправке уведомлений. Где хранятся эти теги? Как я могу быть уверен, что пользователь правильно зарегистрирован? У меня есть этот код для регистрации пользователей:

@SuppressWarnings("unchecked")
    private void registerWithNotificationHubs() {
       new AsyncTask() {
          @Override
          protected Object doInBackground(Object... params) {
             try {
                String regid = gcm.register(SENDER_ID);
                hub.register(regid, "tag");
             } catch (Exception e) {
                return e;
             }
             return null;
         }
       }.execute(null, null, null);
    }

Когда тег не используется, уведомления работают и отправляются на все устройства. Я хочу добавить тег и отправить уведомление определенному тегу.


person grayFox16    schedule 07.11.2014    source источник


Ответы (1)


Мы называем это тегами, а не токенами. Вы можете указать один или несколько тегов для каждой регистрации устройства, а затем использовать эти теги для маршрутизации сообщений определенному пользователю или группе. Идентификатор документации здесь.

person efimovandr    schedule 07.11.2014
comment
Да, спасибо, я знаю, что это теги, я отредактировал пост. Я знаю, что вы можете настроить таргетинг на определенные теги, но я хочу знать, где я могу увидеть все эти теги? Проблема в том, что теги, которые я хотел бы присвоить устройствам, были бы динамическими, и я бы их не знал. Это может быть строка, содержащая адрес электронной почты пользователя. И тогда я хотел бы их увидеть и отправить уведомление пользователю, указав электронную почту пользователя - person grayFox16; 08.11.2014
comment
Если я user1, то у меня есть какой-то идентификатор в вашей системе - электронная почта, идентификатор БД или что-то в этом роде. Когда user2 отправляет мне сообщение, он каким-то образом знает мой идентификатор. Итак, если в моей регистрации есть тег, который равен моему идентификатору, то сообщение будет отправлено на этот тег, и я его получу. Если это не работает по каким-то причинам, просто дайте мне знать, и я помогу найти решение. - person efimovandr; 08.11.2014
comment
Да, как я и думал, это сработает. Но как я могу быть уверен, что назначенный мной тег действительно присвоен? Я думал, что в центре уведомлений будет таблица или что-то в этом роде, где я смогу увидеть все эти токены и регистрации. Но я думаю, что единственный способ проверить это - это проверить. - person grayFox16; 10.11.2014
comment
Центр уведомлений позволяет получить регистрацию(-и) по тегу, если вам это действительно нужно. Но что происходит в большинстве случаев — каждый раз, когда приложение запускается на устройстве, оно получает RegistrationId от GCM, а затем создает/обновляет регистрацию в Центре уведомлений. Итак, если пользователь использует приложение, его идентификатор отображается в Центре уведомлений. Также подумайте, что вы будете делать, если обнаружите, что конкретный пользователь не зарегистрирован в Центре уведомлений? Вы собираетесь создать для него регистрацию? В этом случае вы должны указать его RegistrationId GCM, который можно получить только с его устройства. - person efimovandr; 11.11.2014
comment
Прошу прощения, что так долго не отвечал, меня не было в городе. Так что мне удалось использовать теги для таргетинга на конкретных пользователей моего приложения. Это сработало, как вы сказали, я зарегистрировал их с помощью sender_id и тега, а затем в node.js в моей мобильной службе Windows Azure я отправляю уведомление только этим тегам. Спасибо! - person grayFox16; 01.12.2014