Подскажите, может кто сталкивался, перестали работать Push уведомления, приходит ошибка при отправке
вhttps://console.firebase.google.com не могу найти ключ для отправки (видать что то поменялось)
Отправка сообщения 1 через FCM завершилась ошибкой: DeprecatedApi
Уведомление = Новый ДоставляемоеУведомление;
Уведомление.Заголовок=Стр.Заголовок;
Уведомление.Текст=Стр.ТекстОповещения;
Уведомление.Данные=Стр.Данные;
Для Каждого СтрСотр Из Сотрудник.Устройства Цикл
Если СтрСотр.IDУстройства<>"" Тогда
Попытка
Уведомление.Получатели.Добавить(Десериализовать(СтрСотр.IDУстройства));
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
Попытка
ИнформацияОПроблемахОтправкиДоставляемыхУведомлений=Новый Массив;
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, КлючСервера,,,ИнформацияОПроблемахОтправкиДоставляемыхУведомлений);
Исключение
КонецПопытки;
Показатьв
По теме из базы знаний
- Создаем свою библиотеку для OneScript
- Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя"
- Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска
- DevOps: бери и делай!
- Приемы быстрой работы в EDT/Git
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Да, поменялось, теперь отправка уведомлений идет только по протоколу FCM HTTP v1 API
Инструкция от Firebase
(6)
Спасибо, токен получаю, но теперь появилась другая ошибка
Спасибо, токен получаю, но теперь появилась другая ошибка
МаркерДоступа = ОтправкаДоставляемыхУведомлений.ПолучитьМаркерДоступа(ТипПодписчикаДоставляемыхУведомлений.FCM,ИдентификаторПриложения,КлючСервера);
ИнформацияОПроблемахОтправкиДоставляемыхУведомлений=Новый Массив;
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, МаркерДоступа,,,ИнформацияОПроблемахОтправкиДоставляемыхУведомлений);
Недопустимое состояние объекта
[json - src\json\src\JSONReaderImpl.cpp (586)]
(7) в "КлючСервера" у вас строка вида
?
{
"type": "service_account",
"project_id": "fffff",
"private_key_id": "ffffffff",
"private_key": "-----BEGIN PRIVATE KEY-----\ffffffffffff\n-----END PRIVATE KEY-----\n",
"client_email": "fffffffff",
"client_id": "ffffff",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "fffffff",
"universe_domain": "googleapis.com"
}
Показать?
(9) да, маркер получается, а вылетает при попытке отправить, причем по жесткому, просто закрывая 1С
если маркер просрочен, то приходит сообщение что маркер устарел, соответственно с маркером все хорошо, получается что то именно с уведомлением или ID устройства
если маркер просрочен, то приходит сообщение что маркер устарел, соответственно с маркером все хорошо, получается что то именно с уведомлением или ID устройства
Функция отправки
на
вываливается по ошибке
подозреваю что что то не так с Уведомление.Получатели.Добавить(Десериализовать(СтрСотр.IDУстройства)); хотя ID вроде такое же как и раньше
Функция ОтправитьPUSH(МассивУведомлений) Экспорт
Если Не Константы.РежимОграниченияБД.Получить() Тогда
Если ТипЗнч(МассивУведомлений)=Тип("Массив") Тогда
КлючСервера = Константы.FirebaseServerKey.Получить();
ИдентификаторПриложенияАндроид = Константы.ИдентификаторПриложенияАндроид.Получить();
FirebaseМаркерДоступа = Константы.FirebaseМаркерДоступа.Получить();
Если НЕ ЗначениеЗаполнено(FirebaseМаркерДоступа) Тогда
Попытка
FirebaseМаркерДоступа = ОтправкаДоставляемыхУведомлений.ПолучитьМаркерДоступа(ТипПодписчикаДоставляемыхУведомлений.FCM,ИдентификаторПриложенияАндроид,КлючСервера);
Константы.FirebaseМаркерДоступа.Установить(FirebaseМаркерДоступа);
Исключение
Возврат Ложь;
КонецПопытки;
КонецЕсли;
Если ЗначениеЗаполнено(КлючСервера) и ЗначениеЗаполнено(ИдентификаторПриложенияАндроид) Тогда
Для Каждого Стр Из МассивУведомлений Цикл
Сотрудник = Стр.Сотрудник;
Если Сотрудник.Устройства.Количество()=0 Тогда
Продолжить;
КонецЕсли;
Уведомление = Новый ДоставляемоеУведомление;
Уведомление.Заголовок=Стр.Заголовок;
Уведомление.Текст=Стр.ТекстОповещения;
Уведомление.Данные=Стр.Данные;
Для Каждого СтрСотр Из Сотрудник.Устройства Цикл
Если СтрСотр.IDУстройства<>"" Тогда
Попытка
Уведомление.Получатели.Добавить(Десериализовать(СтрСотр.IDУстройства));
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
Попытка
ИнформацияОПроблемахОтправкиДоставляемыхУведомлений=Новый Массив;
ИсключенныеПолучатели=Новый Массив;
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, FirebaseМаркерДоступа,ИсключенныеПолучатели,Ложь,ИнформацияОПроблемахОтправкиДоставляемыхУведомлений);
Исключение
Возврат Ложь;
КонецПопытки;
КонецЦикла;
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Ложь;
КонецФункции
Показатьна
ОтправкаДоставляемыхУведомлений.Отправить(Уведомление, FirebaseМаркерДоступа,ИсключенныеПолучатели,Ложь,ИнформацияОПроблемахОтправкиДоставляемыхУведомлений);
вываливается по ошибке
Недопустимое состояние объекта
[json - src\json\src\JSONReaderImpl.cpp (586)]
подозреваю что что то не так с Уведомление.Получатели.Добавить(Десериализовать(СтрСотр.IDУстройства)); хотя ID вроде такое же как и раньше
<DeliverableNotificationSubscriberID xmlns="http://v8.1c.ru/8.3/data/ext" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<subscriberType>FCM</subscriberType>
<deviceID>cvt-QM64QemCMej33pm1Dm:APA91bFgmNO8SHWGh81gI-QiSQFKBoTjXDZlj3PfPYNIG_hG11K14KFDnzC9S4GkysVrjBY48AAmDB6tUI NBTrG2YFBlhmWmWyEUBj5sORC0X0A6zw7zge4</deviceID>
<applicationID>хххххххххх</applicationID>
<databaseID>ххххххххххх</databaseID>
</DeliverableNotificationSubscriberID>
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот