Меню

1с настройка отправки push уведомлений

Обработка push уведомлений отправленных не через 1с

Всем доброго дня!
Есть мобильное приложение написанное на 1с и бэкэнд на PHP.
Так вот когда push уведомление отправляю с сервера 1с, то оно штатно обрабатывается в мобильном приложении (отлавливается тут ДоставляемыеУведомления.ПодключитьОбработчикУведомлений и обработчик выполняется), но если push отправить напрямую из google консоль или посредством вызова GCM API, то на телефон оно приходит, но в мобильном приложении никак не обрабатывается.
Плюс они выглядят немного иначе — в пуше из 1с есть икнока приложения, а через GCM эту картинку вставить мне не получается.
Отсюда возникло предположение, что наверное 1с как-то по-хитрому отправляет push. Может там нужно что-то в теле вызова специальное передать, чтобы 1с стала его отлавливать. Кто-нибудь сталкивался с таким?)

За правильный ответ обещаю 2 мани)

(8) сейчас проверю
И да, я в курсе что надо переходить на FCM
Но пока еще не нашел работающей с FCM платформы 1с
Даже тонкий клиент падает, когда пытаешься FCM уведомление отправить.
Баг зарегистрирован ( https://bugboard.v8.1c.ru/error/000051057) и сказано, что исправлен в 8.3.14.1565, но у меня и на это платформе проявляется
И мобильный клиент падает, когда через FCM API отправляешь уведомление

Или может у вас получилось где-то в 1с настроить FCM?

(8) что-то не пойму куда и что надо все же вставить

еще раз поясню
Я отправляю push через GCM API ( https://gcm-http.googleapis.com/gcm/send )
В теле запроса передаю вот что

<
«to»:$token,
«notification»: <
«title»:»Hello»,
«body»:»Here is some body»,
«icon»:»res/drawable-hdpi-v4/icon.png»
>,
«applicationID»:»align.it.ru.my.mafia»
>

Но 1с все равно не отлавливает этот push, когда приложение открыто. Но если приложение свернуто или телефон заблокирован, то Push приходит и открывает приложение 1с. Но обработчик уведомления не отрабатывает

(11) ну надо было учить английский в детстве
restricted_package_
name Optional, string This parameter specifies the package name of the application where the registration tokens must match in order to receive the message.

и по идее это уже определит для какого приложения будет пуш

(12) к сожалению не помогло
Отправляю такой запрос

<
«to»:»APA91bHpO3PKqZ5VPZvgpSZfr9gFr-. «,
«notification»: <
«title»:»Title»,
«body»:»Here is some body»,
«icon»:»myicon»
>,
«restricted_package_name»:»align.it.ru.my.mafia»
>

Все равно мобильное приложение ничего не делает

(14) имя пакета правильное
Проверил его и через AppDetective и если я меняю его в запросе то получаю в ответ InvalidPackageName

Читайте также:  настройка dns сервера для smtp

Спасибо насчет restricted_package_ name. Нашел эту статью и там еще есть параметр в самом notification
click_action — Android, iOS Optional, string — The action associated with a user click on the notification. On Android, if this is set, an activity with a matching intent filter is launched when user clicks the notification.

Кажется сюда надо что-то передать. Но что непонятно.
А может есть какое-нибудь приложение, чтобы отловить push от 1с сервера и разобрать его — увидеть что внутри него?
Если я увижу что внутри push’а, который работает, то думаю смогу воссоздать его

Вот тело запроса, которое я передаю в GCM API
С иконкой игрался, но так и не нашел что можно использовать, чтобы поменять иконку уведомления

<
«to»:$token,
«notification»: <
«title»:»Hello»,
«body»:»Here is some body»,
«icon»:»icon.png»
>
>

(2)можешь показать кусок побольше с *** вместо секретных данных?
Было ли проделано все это?
Внимание! Описание консоли разработчика приводится по состоянию на момент написания документации.

Следующие действия должен выполнить внедренец приложения-отправителя во время развертывания и настройки приложения-отправителя в компьютерной сети заказчика:

1. Необходимо войти в консоль разработчика (Google Developers Console, https://console.developers.google.com/project) .

2. Необходимо создать проект (кнопка Создать проект).

3. После окончания создания проекта перейдите в свойства проекта (Управление ресурсами – – меню (в правой части строки с именем приложения) – Настройки). На открывшейся странице необходимо запомнить номер, расположенный под надписью Номер проекта (после названия и идентификатора проекта). Этот номер проекта необходим для того, чтобы мобильное устройство смогло сформировать идентификатор получателя.

4. Необходимо включить возможность использования сервиса GCM. Для этого необходимо выбрать приложение, а затем использовать команду меню Продукты и сервисы – Диспетчер API (меню доступно в левом верхнем углу страницы, рядом с надписью Google APIs). На станице Библиотека следует ввести в поле ввода Google Cloud Messaging. В списке ниже поля ввода выбрать пункт Google Cloud Messaging, и на открывшейся странице нажать гиперссылку Включить (в верхней части страницы, справа от надписи Google Cloud Messaging).

5. Необходимо получить ключ программного интерфейса (Ключ API). Для этого необходимо выбрать в левой части страницы пункт меню Учетные данные. В разделе Учетные данные следует нажать кнопку Создать учетные данные и в выпадающем меню выбрать Ключ API. После создания ключа нажать кнопку Применить ограничения для ключа в получившемся диалоге. В разделе Ограничения ключа необходимо выбрать пункт IP-адреса (веб-серверы, задания cron и т. п.) и в поле Принимать http-запросы от серверов со следующими IP-адресами указать IP-адрес сервера, который будет выступать отправителем для вашего приложения. Другими словами в данном поле рекомендуется указать IP-адрес (или адреса) компьютера, с которого прикладное решение будет рассылать уведомления. Для тестовых проверок можно указать IP-адрес 0.0.0.0/0. Сменить список допустимых IP-адресов можно при редактировании свойств ключа API.

Читайте также:  где находится отпечаток пальца в настройках

6. После окончания формирования ключа, он будет отображен в поле Ключ API. Получившееся значение необходимо использовать в качестве ключа аутентификации для отправки уведомлений (параметр ДанныеАутентификации метода Отправить() объекта МенеджерОтправкиДоставляемыхУведомлений). Рекомендуется относиться к данному ключу как к конфиденциальной информации. Получение данного ключа третьими лицами позволит им отправлять push-уведомления от вашего имени, например в случае, если при создании ключа не указывались конкретные значения IP-адресов.

Получившийся ключ программного интерфейса (Ключ API) необходимо предоставить внедренцу приложения-отправителя для указания в настройках приложения. Вышеописанные действия не требуется выполнять, если рассылка уведомлений выполняется через сервис фирмы «1С».

источник

Ошибка отправки push-уведомления из 1С на мобильное приложение 1С Android

С августа 2019 года перестали отправляться push-уведомления из 1С в мобильное приложение 1С (мобильная платформа 1С) на Andoid.
До этого момента всё отлично отправлялось.

Ошибка следующая :
» Ошибка при вызове метода контекста (Отправить): Отправка сообщения 1 через GCM завершилась ошибкой: Error=DeprecatedEndpoint «

Платформа 1С: 8.3.9.2170, 8.3.12.1567, 8.3.15.1534 (самая актуальная из 8.3);
Мобильная платформа 1С: 8.3.13.45, 8.3.15.59 (самая актуальная из мобильных).

Описание механизма (который работал больше года) :
1. Сторонние сервисы не используются.
2. Создан проект в firebase.google.com;
2.1 Получен номер проекта (как номер отправителя);
2.2 Получен ключ сервера (для отправки push-уведомлений);
3. В мобильном приложении 1С при каждом входе обновляется IDПодписчика.

Код отправки push-уведомления из основной базы :

Код получения IDПодписчика в мобильном приложении 1С :

В интернете обсуждений такой проблемы, связанной с 1С нет. Никто push-уведомления не использует что ли?
Есть что-то похожее на английских сайтах посвящённое разработке мобильных приложений на Андроид. Но там решения основанные на правках в самом коде приложений.

Я так понял это проблема/задача 1С? Т.е. в самой платформе нужно что-то изменить?

Просто странно, что даже на последних версиях платформы не решена проблема. И почему-то нет похожих вопросов в рунете по 1С.

Читайте также:  настройка перемещаемого профиля windows server 2008

источник

Работа с push сервисами только средствами 1С 8.2

С помощью обработки можно настроить отправку push сообщений через post запросы к произвольным сервисам. Структура запросов обычно прописана в API сервиса. В обработке уже прописаны 3 сервиса и для использования нужно только указать ID пользователя, заголово к, само сообщение и используемые поля.

При самостоятельном заполнении полей для post запроса нужно указать, в заголовке или теле запроса передается параметр, нужно ли его использовать вообще, а также можно указать вид поля (заголовок или сообщение) для программных вызовов при встраивании в конфигурацию или обработку.

Настройки обработки могут быть сохранены в регистр (только для неуправляемого интерфейса и для типовых конфигураций типа УПП 1.3, УТ 10, КА 1.1 и т. д.) для дальнейшего использования при встраивании в конфигурацию или обработку.

Кроме того, обработка может быть использована сама по себе для оповещения об окончании какой-либо обработки. Для этого нужно настроить отправку сообщения, указать задержку отправки в секундах, чтобы успеть запустить обработку. После этого нажать на отправку сообщения и запустить нужную обработку. Обработка «поставит на паузу» задержку отправки сообщения. После окончания обработки обратный отсчет возобновится, и сообщение в итоге будет отправлено. Технически это решено через подключение обработчика ожидания.

При внедрении в конфигурацию или обработку нужно каким-либо образом настроить сохранение и восстановление настроек push уведомлений. У меня это реализовано через стандартный механизм сохранения настроек в регистр сведений. При вызове отправки уведомления передается только заголовок и само сообщение. Для отправки используется настройка, которая указана как «Открывать» текущего пользователя.

Управляемая форма доработана только для состояния тестирования отправки уведомления. При желании можно доработать.

Коротко об основных сервисах:

1. pushbullet – мой выбор в итоге пал на него. Во-первых, у него есть клиенты под android, ios, браузеры, windows, blackberry и т.д.А во-вторых, он бесплатный. Для того, чтобы заработал прием сообщений, нужно не забыть в сообщении указать e-mail получателя. Есть возможность передавать файлы между устройствами (пока не пробовал реализовать через 1С)

2. pushover — есть клиенты под android, ios, браузеры, windows ( не родной). Лицензия стоит денег, но есть тестовый период.

источник