Ниже представлен программный код 1С по интеграции с Умным домом Яндекс, а также приложена обработка. Проверено на платформе 1С:Предприятие 8.3 (8.3.25.1286).
Описание процесса разработки записал на видео.
![](https://i.ytimg.com/vi/IQzkjvkUc_k/sddefault.jpg)
&НаКлиенте
Процедура ПолучитьКод(Команда)
HTMLДокумент = "https://oauth.yandex.ru/authorize?response_type=code&" +
"client_id=ece3b1983f58467f83595d9bb1551b05";
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьТокен(Команда)
HTTPСоединение = Новый HTTPСоединение("oauth.yandex.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL);
HTTPЗапрос = Новый HTTPЗапрос("/token");
HTTPЗапрос.Заголовки.Вставить("Content-type", "application/x-www-form-urlencoded");
HTTPЗапрос.УстановитьТелоИзСтроки("grant_type=authorization_code&" +
"code=" + Код + "&" +
"client_id=ece3b1983f58467f83595d9bb1551b05&" +
"client_secret=dab964200b444d9aa7c35dd5ad9b6b15");
HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
ОтветСтрока = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(ОтветСтрока);
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
ОтветСтруктура = ПрочитатьJSON(ЧтениеJSON);
Токен = ОтветСтруктура.access_token;
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьСписокУстройств(Команда)
HTTPСоединение = Новый HTTPСоединение("api.iot.yandex.net",,,,,,Новый ЗащищенноеСоединениеOpenSSL);
HTTPЗапрос = Новый HTTPЗапрос("/v1.0/user/info");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("GET", HTTPЗапрос);
ОтветСтрока = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(ОтветСтрока);
КонецПроцедуры
&НаКлиенте
Процедура Свет(Команда)
HTTPСоединение = Новый HTTPСоединение("api.iot.yandex.net",,,,,,Новый ЗащищенноеСоединениеOpenSSL);
HTTPЗапрос = Новый HTTPЗапрос("/v1.0/devices/actions");
HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
HTTPЗапрос.Заголовки.Вставить("Authorization", "Bearer " + Токен);
HTTPЗапрос.УстановитьТелоИзСтроки(ТелоУправления());
HTTPОтвет = HTTPСоединение.ВызватьHTTPМетод("POST", HTTPЗапрос);
ОтветСтрока = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить(ОтветСтрока);
КонецПроцедуры
Функция ТелоУправления()
Структура = Новый Структура;
devices = Новый Массив;
device = Новый Структура;
device.Вставить("id", "c0770c51-c068-4a32-a026-47632d72f92d");
actions = Новый Массив;
action = Новый Структура;
action.Вставить("type", "devices.capabilities.on_off");
state = Новый Структура;
state.Вставить("instance", "on");
state.Вставить("value", Включен);
action.Вставить("state", state);
actions.Добавить(action);
device.Вставить("actions", actions);
devices.Добавить(device);
Структура.Вставить("devices", devices);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, Структура);
СтрокаJson = ЗаписьJSON.Закрыть();
Возврат СтрокаJson;
КонецФункции