Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Отправка PDF из 1с в ватсап, Base64Строка

Отправка PDF из 1с в ватсап, Base64Строка
Я
   nikolas260579
 
06.08.19 - 12:37
Всем добрый день. Пытаюсь отправить пдф из 1с в ватсап.

ТемпФайл=ПолучитьИмяВременногоФайла("PDF");
РезультатТ.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
РезультатТ.Записать(ТемпФайл,ТипФайлаТабличногоДокумента.PDF);
ДД = Новый ДвоичныеДанные(ТемпФайл);
Сообщение = Base64Строка(ДД);

В соответствии с https://api-messenger.com/documentations/sendfile/ записываю Сообщение в параметр "body", передаю остальные обязательные параметры. На выходе получаю код состояния 422. В теле ответа ошибка {"status":"ERROR","message":"The string is not valid base64 (body)"}. Почему в теле не Base64Строка, что я сделал не так?
 
 
   Вафель
 
1 - 06.08.19 - 12:49
   Cyberhawk
 
2 - 06.08.19 - 12:50
"записываю Сообщение в параметр "body", передаю остальные обязательные параметры" // Покажи код
   Cyberhawk
 
3 - 06.08.19 - 12:52
Судя по квадратным скобкам телом запроса должен быть массив из одного элемента-структуры (или соответствия), а не сама структура (или соответствие)
   nikolas260579
 
4 - 06.08.19 - 12:54
(2)        JSONСписок = Новый ЗаписьJSON();
        JSONСписок.ПроверятьСтруктуру = Ложь;
        ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON();
        JSONСписок.УстановитьСтроку(ПараметрыЗаписиJSON);
        JSONСписок.ЗаписатьНачалоМассива();
        JSONСписок.ЗаписатьНачалоОбъекта();
        JSONСписок.ЗаписатьИмяСвойства("body");
        JSONСписок.ЗаписатьЗначение(Сообщение);
        JSONСписок.ЗаписатьИмяСвойства("filename");
        
        Пока не Найти(ПутьКФайлу,"\")=0 Цикл
            
            ПутьКФайлу = Сред(ПутьКФайлу,Найти(ПутьКФайлу,"\") +1); 
            
        КонецЦикла;
        
        JSONСписок.ЗаписатьЗначение(ПутьКФайлу);
        JSONСписок.ЗаписатьИмяСвойства("chatId");
        JSONСписок.ЗаписатьЗначение(Телефон);
   Cyberhawk
 
5 - 06.08.19 - 12:55
Постманом значит еще проверь
   Вафель
 
6 - 06.08.19 - 12:56
так это же бом
   nikolas260579
 
7 - 06.08.19 - 13:11
А дело в маске там не может быть? В этой ссылке отправляют картинку в качестве примера, там перед всей кучей символов стоит такая штука  "body": "data:image/jpeg;base64,/9j/(дальше куча символов)
   Cyberhawk
 
8 - 06.08.19 - 13:13
Ну вот и ты проверь с картинкой для начала, только без той муйни что в примере
   Cyberhawk
 
9 - 06.08.19 - 13:14
Потом и с муйней проверь - если с муйней прокатит, то документация УГ и значит добавляй эту муйню и у себя
   nikolas260579
 
10 - 07.08.19 - 11:38
Подниму тему. Проверял свою полученную строку в декодировщиках, например base64.guru. При декодировке получаю нужный пдф файл. В 1с назад через base64Значение тоже получаю исходные двоичные данные.
   nikolas260579
 
11 - 07.08.19 - 12:04
Проверил регулярным выражением http://qaru.site/questions/53274/how-to-check-whether-the-string-is-base64-encoded-or-not, тоже всё нормально.
   ManyakRus
 
12 - 07.08.19 - 12:45
http://catalog.mista.ru/public/1043780/
там уже всё сделано, работает :)
   nikolas260579
 
13 - 07.08.19 - 12:53
нет стартманей у меня, чтобы скачать(
   nikolas260579
 
14 - 08.08.19 - 10:13
Ещё раз подниму тему. Оказалось, что при кодировании Base64Строка () мне сделала строку с переносами и возвратом каретки, это я заменил. Я решил глянуть конвертер из Бэйз64 в JSON. Сначала строку подставлял в графу Бэйз 64, мне выдало ошибку, мол, это не Бэйз64 строка. Подставил её в графу JSON, тогда её нормально преобразовало в Бэйз64.  Теперь думаю, как со стороны 1С это преобразование из JSON в строку Бэйз 64 сделать.
   nikolas260579
 
15 - 08.08.19 - 10:14
   Cyberhawk
 
16 - 08.08.19 - 10:25
Ну так ПараметрыЗаписиJSON же
   nikolas260579
 
17 - 08.08.19 - 10:36
(16) Пока не понял, а как я через них строку преобразую?

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.