Имя: Пароль:
1C
1С v8
Работа с WhatsApp CloudApi
0 JuixyJes
 
10.12.24
10:18
Всем привет! Подскажите пожалуйста, пытаюсь пообщаться с API посредством 1С, есть вот такой запрос CURL:

curl -i -X POST `
  https://graph.facebook.com/v21.0/APPID/messages `
  -H 'Authorization: Bearer Token' `
  -H 'Content-Type: application/json' `
  -d '{ \"messaging_product\": \"whatsapp\", \"to\": \"номер_телефона\", \"type\": \"template\", \"template\": { \"name\": \"hello_world\", \"language\": { \"code\": \"en_US\" } } }'


И вот он же, мною переписанный  в 1С:

    
Соединение = Новый HTTPСоединение("graph.facebook.com",443,"логин","пароль",,30,Новый ЗащищенноеСоединениеOpenSSL());
    
    Токен = "токен";
    
    ЗаголовокЗапросаHTTP = Новый Соответствие();
    ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer" + Токен);
    ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");    
    
    ЗапросHTTP = Новый HTTPЗапрос("v21.0/APPID/messages", ЗаголовокЗапросаHTTP);
    СтруктураЯзыка = Новый Структура("code","en_US");
    СтруктураСообщения = Новый Структура("name,language","hello_world",СтруктураЯзыка);
    Данные = Новый Структура("messaging_product,to,type,template","whatsapp","номер_телефона","template",СтруктураСообщения);
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON,Данные);
    СтрокаДляТела = ЗаписьJSON.Закрыть();
    ЗапросHTTP.УстановитьТелоИзСтроки(СтрокаДляТела);
    HTTPОтвет = Соединение.ВызватьHTTPМетод("POST",ЗапросHTTP);
    Объект.Ответ = HTTPОтвет.ПолучитьТелоКакСтроку();


Всё ли у меня правильно?
1 Волшебник
 
10.12.24
10:26
Работает?
2 Звездец
 
10.12.24
10:32
то есть предлагаешь запустить код за тебя? А оно нам надо?
3 JuixyJes
 
10.12.24
10:37
(1) Ну, код отрабатывает, вроде подключается, но выдает ошибку, что приложения с таким ID нет или у него не хватает прав или оно не поддерживает такую работу
4 Волшебник
 
10.12.24
10:52
(3) Странно... А почему?
5 oleg_km
 
10.12.24
10:58
Вот здесь:
ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer" + Токен);

может должно быть так:
ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer " + Токен);

После Bearer пробела не хватает, наверное
6 JuixyJes
 
10.12.24
16:54
(5) Спасибо! Помогло