ТипПодписчикаДоставляемыхУведомлений.GCM

Свойства · GCM

Google Cloud Messaging. Сервис, используемый для доставки push-уведомлений на устройства под управлением ОС Android. Данный сервис в апреле 2018 был деактивирован и удален из API Google.

Полное описание, параметры и ограничения

ТипПодписчикаДоставляемыхУведомлений.GCM (DeliverableNotificationSubscriberType.GCM)

ТипПодписчикаДоставляемыхУведомлений (DeliverableNotificationSubscriberType)

GCM (GCM)

Не рекомендуется использовать, начиная с версии 8.3.13.

Рекомендуется использовать:

FCM

Доступен, начиная с версии 8.3.6.

Описание:
Google Cloud Messaging. Сервис, используемый для доставки push-уведомлений на устройства под управлением ОС Android.
Данный сервис в апреле 2018 был деактивирован и удален из API Google.
Использование в версии:

Доступен, начиная с версии 8.3.6.

Не рекомендуется использовать, начиная с версии 8.3.13.

Описание изменено в версии 8.3.13.

Методическая информация

Практические примеры

Сопоставить настоящего своего подписчика и аутентификацию: GCM

Один собственный реальный подписчик и один вызов отправки; ошибки читает штатный выходной массив.

Где и как запускать

Сервер своего настроенного мобильного приложения; один ручной собственный тест.

Подготовка

  1. Только своё мобильное приложение, своё устройство и собственная настройка push-провайдера. Основной блок — тело серверной процедуры своей обработки с параметрами ПутьКСвоемуСнимку Строка и ДанныеДоступа соответствующего native-типа; обе дополнительные функции — в том же серверном модуле.

  2. Подписчик — настоящий ИдентификаторПодписчикаДоставляемыхУведомлений, ранее полученный собственной рабочей мобильной регистрацией и сохранённый вашим приложением. Снимок — собственный UTF-8-текст результата ЗначениеВСтрокуВнутр(Подписчик). Идентификатор устройства / приложения нельзя сочинять и нельзя создавать вымышленным конструктором.

  3. На Android штатный ПолучитьИдентификаторПодписчикаУведомлений документирован для FCM (тип GCM). Этот вызов не выбирает HPK / RMS / WNS параметром. Для примера другого провайдера необходим уже существующий настоящий идентификатор именно своей соответствующей сборки / платформы. Если его нет, сначала настройте поддержку провайдера; подменять ТипПодписчика нельзя.

  4. Снимок содержит идентификаторы устройства / приложения: не публикуйте его, не открывайте чужие скачанные строки через ЗначениеИзСтрокиВнутр и не принимайте этот файл от внешнего пользователя. Это только собственный доверенный снимок своей системы. Полный снимок в сообщения не выводится.

  5. ДанныеДоступа передайте из собственного защищённого источника сервера: APNS — собственный сертификат, остальные перечисленные провайдеры — соответствующий действующий ключ / маркер доступа. Секреты не зашиваются в код, не копируются в HTML и не выводятся.

  6. Ручной запуск действительно делает ОДНУ внешнюю отправку на своё устройство через заданный провайдер. Выполняйте только с согласия владельца и с доступным собственным сервисом. При сборке справочника сеть, уведомления и BSL не запускались.

Подписчик = ПрочитатьСвоегоПодписчика(ПутьКСвоемуСнимку);
Провайдер = ТипПодписчикаДоставляемыхУведомлений.GCM;
Проблемы = ОтправитьОдноСвоеУведомление(Подписчик, Провайдер, ДанныеДоступа);
Для Каждого Проблема Из Проблемы Цикл
    Сообщить("Проблема своего провайдера: " + Строка(Проблема.ТипОшибки));
    Сообщить("Затронуто собственных получателей: " + Строка(Проблема.Получатели.Количество()));
КонецЦикла;
Тот же модуль: прочитать доверенный собственный native-снимок, не выдумывать подписчика
Функция ПрочитатьСвоегоПодписчика(ПутьКСвоемуСнимку)
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ПутьКСвоемуСнимку, КодировкаТекста.UTF8);
    Подписчик = ЗначениеИзСтрокиВнутр(Текст.ПолучитьТекст());
    Если ТипЗнч(Подписчик) <> Тип("ИдентификаторПодписчикаДоставляемыхУведомлений") Тогда
        ВызватьИсключение "Нужен настоящий сохранённый идентификатор собственного устройства";
    КонецЕсли;
    Возврат Подписчик;
КонецФункции
Тот же модуль: одно уведомление и пятый выходной параметр
Функция ОтправитьОдноСвоеУведомление(Подписчик, Провайдер, ДанныеДоступа)
    Если Подписчик.ТипПодписчика <> Провайдер Тогда
        ВызватьИсключение "Снимок своего устройства относится к другому провайдеру";
    КонецЕсли;
    Уведомление = Новый ДоставляемоеУведомление;
    Уведомление.Текст = "Собственная учебная книга: 3 экземпляра";
    Уведомление.Получатели.Добавить(Подписчик);
    Аутентификация = Новый Соответствие;
    Аутентификация.Вставить(Провайдер, ДанныеДоступа);
    Исключенные = Новый Массив;
    Проблемы = Новый Массив;
    ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, Аутентификация, Исключенные, Ложь, Проблемы);
    Сообщить("Исключённых идентификаторов: " + Строка(Исключенные.Количество()));
    Возврат Проблемы;
КонецФункции

Разбор по шагам

  1. Подготовьте настоящий собственный снимок нужного провайдера и его действующие данные доступа.

  2. Отправьте одну собственную заметку только своему устройству.

  3. Прочитайте возвращённые проблемы, не раскрывая идентификаторы / секреты.

Как проверить результат

  1. Тип провайдера является настоящим ключом Соответствие второго аргумента Отправить. Подписчик того же типа проверяется до вызова. HPK / APNS / GCM / RMS / WNS не взаимозаменяемые строки и не режим, переключающий устройство.

  2. Проблемы заполняются ПЯТЫМ аргументом процедуры Отправить, не её возвращаемым значением. Общее исключение может прервать вызов; пустой массив проблем сам по себе не доказывает фактическое получение / прочтение на устройстве.

  3. Получатели — readonly-ссылка на изменяемый массив уведомления: используется Добавить, не замена свойства. ТипОшибки у проблемы readonly и не присваивается. Исключённые идентификаторы не удаляются автоматически из базы.

Ожидаемый результат

Есть настоящий источник идентификатора, реальный контракт аутентификации / отправки и корректный выходной массив.

На что обратить внимание

  1. Не вызывайте эту процедуру при каждой перерисовке формы и не отправляйте повторно ради заполнения всех ветвей ошибки.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.