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

1. Rabot 90 12.08.19 18:56 Сейчас в теме
Коллеги, прошу помощи.

С августа 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Подписчика);
Уведомление.Заголовок = "Тест";
Уведомление.Текст     = "Тест";
ДанныеАвторизации = Новый Соответствие;
// Больше года работало с параметром GCM, сейчас пробовал и с параметром FCM - не работает тоже
ДанныеАвторизации.Вставить(ТипПодписчикаДоставляемыхУведомлений.GCM, КлючСервера);   // при GCM - ругается на "Ошибка тела уведомления - DeprecatedEndpoint"
//ДанныеАвторизации.Вставить(ТипПодписчикаДоставляемыхУведомлений.FCM, КлючСервера); // при FCM - ругается на "Ошибка данных аутентификации - Не переданы данные для авторизации в сервисе отправки уведомлений."
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, ДанныеАвторизации);
Показать


Код получения IDПодписчика в мобильном приложении 1С:
IDПодписчика = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений(НомерПроекта);


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

На почту, связанную с проектом созданным в firebase.google.com пришло письмо о переходе с GCM на FCM с ссылкой на инструкцию:
https://developers.google.com/cloud-messaging/android/android-migrate-fcm?utm_source=gcm-deprecation-last-round-msa&utm_medium=email#update-server-endpoints

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

Просто странно, что даже на последних версиях платформы не решена проблема. И почему-то нет похожих вопросов в рунете по 1С.
Прикрепленные файлы:
ТД Вертикаль; TreeDogNight; Геннадьевич; Kate_br; +4 Ответить
По теме из базы знаний
Найденные решения
6. demientut 26 14.08.19 10:48 Сейчас в теме
Всё, победа. И не надо сервисов 1С. Все сразу через сервер FCM штатными средствами 1С. HTTP-запрос.

	
	КлючСервера_ = "мой ключ сервера";
		
	АдресСервера = "fcm.googleapis.com/fcm/send";
		
	ssl = Новый ЗащищенноеСоединениеOpenSSL();
	Соединение = Новый HTTPСоединение(АдресСервера,,,,,,ssl);
		
	ТелоСообщения = Новый Структура;
	ТелоСообщения.Вставить("title", "Обновление данных");
	ТелоСообщения.Вставить("name", "Заявка");
	ТелоСообщения.Вставить("text", "куку");
		
	ПараметрыСообщения = Новый Структура;                          
	ПараметрыСообщения.Вставить("registration_ids", МассивУстройств);  // получаем на мобилках, как и при GCM ( IDПодписчика = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений());
	ПараметрыСообщения.Вставить("data", ТелоСообщения);
		
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, ПараметрыСообщения);
		
	СтрокаТелоЗапроса = ЗаписьJSON.Закрыть();
		
	Запрос = Новый HTTPЗапрос();
	Запрос.Заголовки.Вставить("Content-Type", "application/json");
	Запрос.Заголовки.Вставить("Authorization", "key="+КлючСервера_);
	Запрос.УстановитьТелоИзСтроки(СтрокаТелоЗапроса, КодировкаТекста.UTF8);
		
	Ответ = Соединение.ОтправитьДляОбработки(Запрос); 

	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
	СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
Показать
Serg O.; smit1c; EvgeTrofi; neo-ti; TreeDogNight; user623969_dusa; romanagatiy; akR00b; gimmy; Andr10K; maksa2005; SvetlanaSchipakina; rise; frkbvfnjh; Reznik_Nikolay; vasilievil; Rabot; Sol; Maxis; +19 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
35. user623969_dusa 05.12.19 17:55 Сейчас в теме
(1)
Код получения IDПодписчика в мобильном приложении 1С:
IDПодписчика = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений(НомерПроекта);


внимательное прочтение синтаксис помощника показало что
для FCM не надо указывать номер проекта при получении ИД на мобильном
с номером проекта ИД содержит: <subscriberType>GCM</subscriberType>
а если
ID = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений();
без номера проекта ИД будет нужного типа: <subscriberType>FCM</subscriberType>

и можно средствами 1с отправить уведомление
Уведомление = СоздатьУведомление(ТекстУведомления, Данные);
Уведомление.Получатели.Добавить(<десериализованныйИДМобильногоПодписчикаУведомлений>);
ДанныеАвторизации = Новый Соответствие;

ДанныеАвторизации.Вставить(ТипПодписчикаДоставляемыхУведомлений.FCM, <токен созданный при переносе проекта из GCM в FCM>);
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, ДанныеАвторизации);
neo-ti; warpath; +2 Ответить
43. warpath 39 30.04.20 21:36 Сейчас в теме
(35) Большое спасибо за маленькую инструкцию.
После того, как удалил номер проекта, все сразу заработало.
2. demientut 26 13.08.19 13:06 Сейчас в теме
Аналогичная проблема.
Плюнул. Решил запросом напрямую, FCM отвечает что все класс - мессаги разошлись по получателям, но ни один телефон в офисе не квакнул....
Но, думаю, направление куда копать верное:

		
КлючСервера_ = "МойКлюч";
АдресСервера = "fcm.googleapis.com/fcm/send";
		
		ssl = Новый ЗащищенноеСоединениеOpenSSL();
		Соединение = Новый HTTPСоединение(АдресСервера,,,,,,ssl);
		
		ТелоСообщения = Новый Структура;
		ТелоСообщения.Вставить("title", "Обновление данных");
		ТелоСообщения.Вставить("body", "Заявка");
		
		
		ПараметрыСообщения = Новый Структура;
		ПараметрыСообщения.Вставить("registration_ids", МассивУстройств);
		ПараметрыСообщения.Вставить("data", ТелоСообщения);
		
		ЗаписьJSON = Новый ЗаписьJSON;
		ЗаписьJSON.УстановитьСтроку();
		ЗаписатьJSON(ЗаписьJSON, ПараметрыСообщения);
		
		СтрокаТелоЗапроса = ЗаписьJSON.Закрыть();
		
		Запрос = Новый HTTPЗапрос();
		Запрос.Заголовки.Вставить("Content-Type", "application/json");
		Запрос.Заголовки.Вставить("Authorization", "key="+КлючСервера_);
		Запрос.УстановитьТелоИзСтроки(СтрокаТелоЗапроса, КодировкаТекста.UTF8);
		
		Ответ = Соединение.ОтправитьДляОбработки(Запрос); 
		
		СтруктураОтветаХранилище = Ответ.ПолучитьТелоКакСтроку();

		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(СтруктураОтветаХранилище);
		Попытка
			СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
		Исключение
		КонецПопытки;	
Показать
3. Rabot 90 13.08.19 14:20 Сейчас в теме
(2)
КлючСервера_ = "МойКлюч";
АдресСервера = "fcm.googleapis.com/fcm/send";


А как ты проверяешь, что отправились? Просто у меня отправленные push-уведомления из 1С в проекте в гугла не сохраняются.
Т.е. есть только два состояния push: работает - телефон отобразил; не работает - телефон не отобразил или при отправке вывалилась ошибка.

Спасибо за вариант, не знал о такой возможности, попробую так сделать.


Что интересно, на 8.3.15.1534 (самая актуальная из 8.3), ошибка не вываливается (! т.е. метод выполняется без каких либо ошибок), а просто на телефон не приходит.
Но, если указать параметр МассивОшибок, то в нём как раз та же самая ошибка DeprecatedEndpoint указана.
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, ДанныеАвторизации,,, МассивОшибок);



А параметр "registration_ids" это что за данные? Тот же самый Идентификатор устройства или что-то иное?
4. demientut 26 13.08.19 21:46 Сейчас в теме
А как ты проверяешь, что отправились?

ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтруктураОтветаХранилище);
СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON)


Если есть ошибка то FCM там ее показывает
5. demientut 26 13.08.19 21:50 Сейчас в теме
А параметр "registration_ids" это что за данные? Тот же самый Идентификатор устройства или что-то иное?


Ответ: Загугли "Firebase Cloud Messaging HTTP protocol" и получишь все параметры для мессаг.
registration_ids - массив ID девайсов-приемников, если их несколько. Теперь так.
6. demientut 26 14.08.19 10:48 Сейчас в теме
Всё, победа. И не надо сервисов 1С. Все сразу через сервер FCM штатными средствами 1С. HTTP-запрос.

	
	КлючСервера_ = "мой ключ сервера";
		
	АдресСервера = "fcm.googleapis.com/fcm/send";
		
	ssl = Новый ЗащищенноеСоединениеOpenSSL();
	Соединение = Новый HTTPСоединение(АдресСервера,,,,,,ssl);
		
	ТелоСообщения = Новый Структура;
	ТелоСообщения.Вставить("title", "Обновление данных");
	ТелоСообщения.Вставить("name", "Заявка");
	ТелоСообщения.Вставить("text", "куку");
		
	ПараметрыСообщения = Новый Структура;                          
	ПараметрыСообщения.Вставить("registration_ids", МассивУстройств);  // получаем на мобилках, как и при GCM ( IDПодписчика = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений());
	ПараметрыСообщения.Вставить("data", ТелоСообщения);
		
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку();
	ЗаписатьJSON(ЗаписьJSON, ПараметрыСообщения);
		
	СтрокаТелоЗапроса = ЗаписьJSON.Закрыть();
		
	Запрос = Новый HTTPЗапрос();
	Запрос.Заголовки.Вставить("Content-Type", "application/json");
	Запрос.Заголовки.Вставить("Authorization", "key="+КлючСервера_);
	Запрос.УстановитьТелоИзСтроки(СтрокаТелоЗапроса, КодировкаТекста.UTF8);
		
	Ответ = Соединение.ОтправитьДляОбработки(Запрос); 

	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
	СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
Показать
Serg O.; smit1c; EvgeTrofi; neo-ti; TreeDogNight; user623969_dusa; romanagatiy; akR00b; gimmy; Andr10K; maksa2005; SvetlanaSchipakina; rise; frkbvfnjh; Reznik_Nikolay; vasilievil; Rabot; Sol; Maxis; +19 Ответить
7. Rabot 90 14.08.19 12:12 Сейчас в теме
(6) Красавчик! Нет слов)
Забавно, что разница между прошлое версией твоего кода и рабочей, в параметре "text" вместо "body".
Пролистал справочник по API, но параметра "text" не обнаружил. Вот как можно дойти до такого решения? Или я не там смотрел.

А не подскажешь как можно заставить при нажатии на push, чтобы открывалась не только 1С (как сейчас), но и конкретная база.

При типовом методе 1С "ОтправкаДоставляемыхУведомлений.Отправить" - открывалась конкретная база.


Отметил твой путь как решение, т.к. оно отлично работает, хоть и не является решением конкретной проблемы работы методов 1С.
И ещё раз спасибо огромное!
45. dimasts 22 19.10.21 04:51 Сейчас в теме
(7) Надо в запросе отправки уведомления FCM в параметр data ещё добавить параметр base и присвоить ему ИдентификаторИнформационнойБазы из Доставляемых уведомлений.
10. RazorSky 14.08.19 17:47 Сейчас в теме
(6) Супер! Большое спасибо!)
20. Reznik_Nikolay 21.08.19 22:57 Сейчас в теме
(6) Спасибо вам большое. Сам 3 вечера убил, на изучение вопроса. Осталось проверить, можно ли передавать большой объем данных JSON через свойство "данные" для парсинга со стороны мобилки.
28. Andr10K 01.10.19 22:37 Сейчас в теме
(6) Спасибо за труд! Я словил все ошибки, которые были тут, плюс массу других 😄. Начал регать свое приложение, как в ИТС написано, но этого делать не надо, верно? Просто в параметрах проекта на закладке сервиса Cloud Messaging копируем ключ сервера (старый или новый длинный?) и Идентификатор отправителя, так? С ключем понятно "key="+КлючСервера". Идентификатор отправителя указать в параметре при получении ID подписчика? Именно так сервис понимает, от кого отправлять пуши. У меня похоже трабл с 12 платформой, у кого на ней взлетело? (ошибка 400
JSON_PARSING_ERROR: Unexpected character () at position 0.)
Завтра проверю.
29. Andr10K 02.10.19 10:12 Сейчас в теме
(28) Работает и на 12 платформе, спасибо!
У меня джейсон был кривой.
8. Keni4i 14.08.19 16:43 Сейчас в теме
У меня вываливается с ошибкой "MismatchSenderId". Как понимаю не может найти IDПодписчика, хотя получаю его так же
"ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений().ИдентификаторУстройства"
Тоже использую мобильную платформу.
9. RazorSky 14.08.19 17:47 Сейчас в теме
(8) нужно в параметр передавать именно массив, а не сам ID

Массив = Новый Массив;
Массив.Добавить(Подписчик.ИдентификаторУстройства);
			               
ПараметрыСообщения = Новый Структура;                          
ПараметрыСообщения.Вставить("registration_ids", Массив);
11. Rabot 90 14.08.19 18:43 Сейчас в теме
(9) если нужно отправить одному устройству, то справочник рекомендует использовать параметр "to" вместо "registration_ids".
ПараметрыСообщения = Новый Структура;                          
ПараметрыСообщения.Вставить("to", Подписчик.ИдентификаторУстройства);



А как при нажатии на уведомление запускать конкретную базу, а не просто приложение 1С?
Есть любопытный параметр "click_action", но не ясно как его использовать.
12. Keni4i 15.08.19 10:43 Сейчас в теме
Разобрался, все таки надо было в мобильном приложении указать Номер приложения.(Идентификатор отправителя из консоли firebase)
ИдентификаторПодписчикаУведомлений= ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений(НомераПриложений);
IDПодписчика = ИдентификаторПодписчикаУведомлений.ИдентификаторУстройства;


Теперь другой момент, перестал отрабатывать Обработчик уведомления. Теперь просто выходит текст Push'а, а раньше при получении пуша переходил в заданную мной процедуру :
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаУведомлений", УведомленияКлиент);	
ДоставляемыеУведомления.ПодключитьОбработчикУведомлений(ОписаниеОповещения);	
ПодключитьОбработчикОповещения("ОбработчикОповещения");

Процедура ОбработкаУведомлений(Уведомление, Локальное, Показано, Параметры) Экспорт
ОткрытьФорму("ОбщаяФорма.ФормаСообщение",Новый Структура("ОК,Сообщение",истина,Уведомление.Текст));
КонецПроцедуры


Может кто в курсе как починить?
40. KAV2 157 16.03.20 10:00 Сейчас в теме
(12)
Разобрался, все таки надо было в мобильном приложении указать Номер приложения.(Идентификатор отправителя из консоли firebase)


Да, это похоже необходимо, но при этом тип сервса меняется на GCM, хотя работает в итоге через FCM. Какой-то театр абсурда.
13. demientut 26 15.08.19 11:21 Сейчас в теме
см справку по FCM - notification
14. Keni4i 16.08.19 11:22 Сейчас в теме
Нашел способ. Надо заполнить "Base" идентификатором базы:
ТелоСообщения = Новый Структура;
		ТелоСообщения.Вставить("title", "Push");
		ТелоСообщения.Вставить("data", "1");		
		ТелоСообщения.Вставить("text", "Запуск обмена");		
		ТелоСообщения.Вставить("base", ТокенПолучателя.ИдентификаторИнформационнойБазы);		
		                                                                                                           		
		ПараметрыСообщения = Новый Структура;
		ПараметрыСообщения.Вставить("to", ТокенПолучателя.ИдентификаторУстройства);
		ПараметрыСообщения.Вставить("data", ТелоСообщения);
Показать
user1203706; KAV2; Andr10K; Rabot; Sol; +5 Ответить
15. Rabot 90 16.08.19 12:55 Сейчас в теме
(14) Лучший! Спасибо большое за то что поделился!
Скажи, как додумался до такого? Нигде параметр "base" не указан в справке Google Firebase. Даже в Android Studio платформу прошестил, не нашёл упоминаний.
16. Maxis 16.08.19 12:58 Сейчас в теме
Делаю как в примере, получаю ответ "200" и ошибку "InvalidRegistration".

На сайте https://firebase.google.com/ есть описание такого поведения:
Check the format of the registration token you pass to the server. Make sure it matches the registration token the client app receives from registering with Firebase Notifications. Do not truncate or add additional characters.

Что может быть не так?
Прикрепленные файлы:
17. Maxis 16.08.19 13:06 Сейчас в теме
Делаю как в примере, но получаю ответ 200 и ошибку "InvalidRegistration".

На сайте Firebase есть описание такого поведения:
Check the format of the registration token you pass to the server. Make sure it matches the registration token the client app receives from registering with Firebase Notifications. Do not truncate or add additional characters.

Что делаю не так?
Прикрепленные файлы:
18. Maxis 16.08.19 15:01 Сейчас в теме
Еще вопрос:
КлючСервера_ - это "Ключ сервера" со страницы https://console.firebase.google.com/project/mobpm-249313/settings/cloudmessaging/ ?
МассивУстройств - это массив сериализованных ИдентификаторПодписчикаДоставляемыхУведомлений (XDTO), в каждом из которых есть deviceID, subscriberType, applicationID и databaseID?
19. Rabot 90 16.08.19 15:46 Сейчас в теме
(18)
1. Ключ сервера - это "Ключ сервера" из консоли Google fire base. Верно;
2. Массив устройств - это массив строк - ИдентификаторПодписчикаДоставляемыхУведомлений.ИдентификаторУстройства (deviceID).
21. Reznik_Nikolay 21.08.19 23:48 Сейчас в теме
Самое забавное, что суммарная информация передачи push уведомления по полям: "заголовок, текст, данные" - не должна превышать 2кб, иначе не приходит.

Печаль, беда... Кто-нибудь сталкивался? есть пути обхода? Скажем, мне бы JSON передать, где 2000 символов, не получится...
22. demientut 26 22.08.19 11:42 Сейчас в теме
Печаль, беда... Кто-нибудь сталкивался? есть пути обхода? Скажем, мне бы JSON передать, где 2000 символов, не получится...

Нет проблем. ПУШка запускает HTTP-запрос на мобилке, который стучится на сервер и забирает хоть вагон данных.
23. karpushka 02.09.19 15:42 Сейчас в теме
Друзья! написал все, как у автора. В ответ получаю ошибку 400
JSON_PARSING_ERROR: Unexpected character () at position 0.


строка JSON вроде нормальная получается

Кто-нибудь встречал?
25. пользователь 04.09.19 13:28
Сообщение было скрыто модератором.
...
26. maksa2005 550 30.09.19 16:36 Сейчас в теме
УРА! ЗАРАБОТАЛО!!!!!
(23)просто замени ее на
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если НЕ Ответ.КодСостояния = 200 Тогда
Сообщить("Ошибка отправки PUSH. КодСостояние: "+Ответ.КодСостояния + Символы.ПС + Ответ.ПолучитьТелоКакСтроку());
КонецЕсли;
27. karpushka 30.09.19 21:05 Сейчас в теме
(26) У меня проблема была с неактуальной платформой
44. office2@cyberax.ru 16.05.20 13:28 Сейчас в теме
(23)
Наткнулся на такую-же проблему. На 12 платформе выдает такую-же ошибку, а на 15 и 16 работает.
Еа 12 платформе получилось исправить ошибку?
24. Dmitrii_r 04.09.19 11:41 Сейчас в теме
Спасибо за статью, сделал - работает. Единственное есть пару неудобных моментов, во первых не отображается счетчик уведомлений возле иконки мобильной платформы и второе - если уведомление смахнуть, а потом открыть мобильную конфигурацию - то не происходит обработка Доставляемых Уведомлений, что не очень удобно, если пользователь уведомление смахнет, то при открытии конфигурации на телефоне, не случиться задуманное..)
Может для отображения счетчика уведомлений, надо передавать какие то доп параметры?
30. frkbvfnjh 805 01.11.19 09:26 Сейчас в теме
Получается, что через объект ДоставляемоеУведомление сейчас отправить не возможно? 1С вообще в курсе, что происходит, кто нибудь им писал? Это наверное нужно оформить в виде ошибки.
31. FunnyDevil 13.11.19 01:03 Сейчас в теме
Кто нибудь сталкивался с таким:
Когда приходит push уведомление, при этом запущено приложение и пользователь с ним работает, уведомление открывается прямо в приложении, наподобие того, как выводится сообщение пользователю, оно содержит следующий текст: «Уведомление для неизвестного приложения. <текст уведомления>».
Параметр "base" заполнен(хотя я вообще не понимаю откуда он взялся, его нет в описание, также как, например "text"), мб ещё какие то параметры нужно заполнить?
32. demientut 26 20.11.19 10:55 Сейчас в теме
(31) А приложение наверно работает через клиент 1С на мобилке, иными словами, не собиралось через сборщик мобильных приложений, да?
33. FunnyDevil 20.11.19 21:21 Сейчас в теме
(32) да, вопрос решается следующим образом: нужно обрабатывать уведомление в обработчике уведомлений. Параметр base должен быть обязательно заполнен.
34. gimmy 24 05.12.19 00:05 Сейчас в теме
Получилось у меня отправить типовыми средствами push уведомление на Андроид.
Что для этого нужно
1. При получении идентификатора подписчика на Андроиде не нужно передавать параметр "НомерПриложения", т.е. вот так
ИдентификаторПодписчика = ДоставляемыеУведомления.ПолучитьИдентификаторПодписчикаУведомлений();

Таким образом будет получен идентификатор с типом "FCM", а не "GCM"
2. Приложение должно быть собрано и установлено на телефон в виде apk. (у меня оно еще загружено в гугл плей, но не уверен что это обязательно)
3. в консоле firebase для проекта нужно добавить приложение и в качестве названия пакета указать полный идентификатор приложения для Android, который указан при сборке приложения

После этого метод отправки отработал без ошибок, пуш уведомления пришли на телефон.

Для не собранного приложения (т.е. запуск идет через мобильную платформу) типовыми средствами отправить не получилось, т.к. в Идентификаторе подписчика название пакета = "com.e1c.mobile". Пробовал добавить приложение с таким названием в проект firebase, но при отправке пуша выводит ошибку
"Отправка сообщения 1 через FCM завершилась ошибкой: ключ отправителя не подходит для получателя
Прикрепленные файлы:
KAV2; user623969_dusa; +2 Ответить
36. user623969_dusa 05.12.19 17:59 Сейчас в теме
(34) скорее всего не получилось с платформы 1с потому что ты собирал приложение с файлом google-services.json в нем данные твоего приложения на файербейс - нужно ждать когда 1с догадается свою платформу собрать с этим файлом
37. gimmy 24 06.12.19 09:41 Сейчас в теме
(36)
Для не собранного приложения (т.е. запуск идет через мобильную платформу) .

Тут же написано что приложение не собрано. Запуск идет из конфигуратора "Запустить отладку мобильного приложения"
+ когда я собрал приложение с google-services.json, то оно перестало устанавливаться, писало вроде что апк поврежден. А без google-services.json устанавливается и пуши работают
Мобильная платформа 8.3.15.62. Сборщик 2.0.10.63
38. user941268 10.12.19 19:10 Сейчас в теме
Это всё здорово, но кто сталкивался с этой проблемой в мобильном документообороте?
Там пуши не идут, даже через 1эсовский центр уведомлений.
"GCM has been deactivated and removed from Google's APIs. ... " хоть и стоит сервис 1С, а в сервисе FCM.
39. KAV2 157 03.02.20 15:20 Сейчас в теме
(38) Аналогично, и в DeviceID указан тип <subscriberType>FCM</subscriberType>
41. serzh44 18.03.20 13:52 Сейчас в теме
Хочу добавить. Если нужно, чтобы уведомление было со звуком, когда 1с не активна на android, то у меня получилось так:

    ТелоСообщения = Новый Структура;
    ТелоСообщения.Вставить("title", "Обновление данных");
    ТелоСообщения.Вставить("name", "Заявка");
    ТелоСообщения.Вставить("text", "куку");
    ТелоСообщения.Вставить("sound", "1");
42. serzh44 18.03.20 15:51 Сейчас в теме
Т.е. вот так:

    ТелоСообщения = Новый Структура;
    ТелоСообщения.Вставить("title", "Обновление данных");
    ТелоСообщения.Вставить("name", "Заявка");
    ТелоСообщения.Вставить("text", "куку");
    ТелоСообщения.Вставить("sound", "default");
46. temrmal 15.06.22 15:56 Сейчас в теме
Кто нибудь отправлял Картинку в сообщении? как в телеграмме пуши приходят, там бывают картинки
47. Evgeniy7620041976 1 18.09.24 16:23 Сейчас в теме
Делаю отправку push по новым правилам. Но мобильное приложение не реагирует на уведомление.
Сейчас новая структура и там нет Base, где указывается номер приложения.
Есть только такая структура
Оповещение = Новый Структура;
Оповещение.Вставить("title", "");
Оповещение.Вставить("body", "");
Оповещение.Вставить("image", "");

Может кто знает что передать чтоб срабатывал обработчик оповещений в мобильном приложении, когда оно выгружено из памяти? когда приложение открыто, то все нормально работает
48. user608038_andrei-5 18.09.24 22:26 Сейчас в теме
(47) подскажи, у тебя обработчик уведомлений запускается после получения push уведомления? какую версию сборщика и какую версию мобильного приложения используешь?
Столкнулся с проблемой, что Android устройство push уведомления получает, а обработчик не запускается. При этом, если отправить из приложения локальное уведомление, то обработчик работает.
Раньше все работало через "ОтправкаДоставляемыхУведомлений.Отправить()", но потом Google внесла изменения в версию PUSH и пришлось перейти на API того же FCM. Но после перехода на API обработчик и полетел. Дождались новую версию приложения, где допилили процедуру отправки "ОтправкаДоставляемыхУведомлений.Отправить()" под новую версию, но мобильное приложение все также отказывается обрабатывать PUSH уведомления. Куда копать, уже не знаю.
49. Evgeniy7620041976 1 19.09.24 12:12 Сейчас в теме
(48) Получается приложения не запущено. Пришло уведомление, я нажимаю на уведомление, открывается приложение 1С и при запуске запускается обработчик уведомлений, но это уведомление он не видит. Раньше до изменений все отрабатывало. Версия сборщика 8.3.25.27, версия мобильной платформы 8.3.25.52. Вот и у меня такая же проблема, если открыто приложение, то обработчик срабатывает
51. user608038_andrei-5 20.09.24 10:34 Сейчас в теме
(49) Такая же проблема. Надеюсь в скором времени выйдет новый релиз мобильной платформы. А пока искользую версию 8.3.25.56, где хотя бы половина функционала работает.
50. user608038_andrei-5 19.09.24 13:28 Сейчас в теме
На текущий момент решил свою проблему установив мобильную платформу версии 8.3.25.56 и переделал метод отправки, который описан в изменениях к технологической платформе 8.3.25. Может быть кому-то будет полезно.
52. Evgeniy7620041976 1 20.09.24 11:58 Сейчас в теме
(50) А как мобильное приложение реагирует на push уведомление в закрытом состоянии? срабатывает обработчик уведомлений на платформе 8.3.25.56?
53. user608038_andrei-5 20.09.24 12:16 Сейчас в теме
(52) увы, но нет. Только при открытом приложении. Пока этого достаточно. Но хотелось бы чтобы работало как раньше.
JDK как я понимаю тут не при чем. Ни 17, ни рекомендованная 19 версия не помогает.
54. Evgeniy7620041976 1 20.09.24 12:20 Сейчас в теме
(53) Да. Раньше еще можно было передавать параметры и потом в уведомлении их было видно в Данные, сейчас нет этого. Видимо действительно нужно ждать новую платформу
55. user608038_andrei-5 20.09.24 12:35 Сейчас в теме
(54) Подтверждаю. Текст приходит, данные - нет.
56. Evgeniy7620041976 1 23.09.24 12:59 Сейчас в теме
На всякий случай напишу. Вышла версия мобильной платформы 8.3.25.58. Проверил, там тоже не работает
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот