Получение данных через REST API

Здравствуйте. Пытаюсь получить данные, например нештатные ситуации. Авторизуюсь:

	Запрос = Новый HTTPЗапрос("/api.asmx?Login");
	Запрос.Заголовки.Вставить("POST",          "/api.asmx HTTP/1.1");
	Запрос.Заголовки.Вставить("Content-Type",    "text/xml; charset=utf-8");
	Запрос.Заголовки.Вставить("SOAPAction",    "http://www.lers.ru/website/api/Login");
	ТекстXML = "<?xml version=""1.0"" encoding=""utf-8""?>
	|<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">
	|<soap12:Body>
	|<userName xmlns=""http://www.lers.ru/website/api"">" + Логин + "</userName>
	|<password xmlns=""http://www.lers.ru/website/api"">" + Пароль + "</password>
	|</soap12:Body>
	|</soap12:Envelope>";

Авторизация проходи успешно. Получаю Cookie из заголовков ответа, для дальнейшего использования в запросах.
Следующим запросом пытаюсь получить нештатные ситуации:

	Запрос = Новый HTTPЗапрос("/rest/v1/incidents?startDate="+Формат(ДатаНачала, "ДФ=yyyy-MM-dd")+"&endDate="+Формат(ДатаОкончания, "ДФ=yyyy-MM-dd"));//+"&newOnly=false");
	Запрос.Заголовки.Вставить("GET",          "/rest/v1 HTTP/1.1");
	Запрос.Заголовки.Вставить("Cookie",       Cookie);

Возвращается ошибка Authorization has been denied for this request
Почитал http://docs.lers.ru/docs/display/LERSDEV/REST+API. Написано, что авторизоватья нужно так: http://docs.lers.ru/docs/pages/viewpage.action?pageId=12189753. Пробую:

	Запрос = Новый HTTPЗапрос("/auth/v2/token?usernsme="+Логин+"&password="+Пароль+"&grant_type=password");
	Запрос.Заголовки.Вставить("POST",          "/auth/v2  HTTP/1.1");

Возвращается ошибка: unsupported_grant_type
Как нужно авторизоваться, чтобы получить нештатные ситуации?? Что я делаю не так??

Для использования Веб-сервиса доступа к данным следует авторизовываться соответственно именно для Веб-сервиса.

это авторизация для REST API, она не подойдет для использования Веб-сервиса.

Уточните такая ситуация возникает только в 1С? Вы пробовали проводить авторизацию в Веб-сервису и получение НС в другом приложении?

Раньше всё работало без проблем, авторизация веб-сервиса подходила для rest api, и данные о нештатных ситуациях я получал по rest api. Наверное это как-то связано с обновлением?? Недавно обновились до R27.6
Проверить могу только в 1с и в браузере. в браузере при http://вдрес:порт/auth/v2/token?usernаme=пользователь&password=пароль&grant_type=password такая же ошибка: {“error”:“unsupported_grant_type”}

Так как вы запрашиваете нештатные ситуации через REST API, то и авторизацию вам соответственно необходимо проходить для REST API.

Посмотрите внимательно на ваш запрос. Вы отправляете POST-запрос, но при этом задаете параметры в адресной строке, как для GET-запроса. Вам нужно задавать параметры в теле запроса.

А какой формат у тела запроса??

В нашей статье приведен пример получения токена утилитой curl. Там же показано содержимое тела запроса.

Спасибо. Всё получилось. Может кому-то будет интересно, через 1С авторизовался следующим образом:

	Соединение = Новый HTTPСоединение(Адрес,Порт,,,,30);
	Запрос = Новый HTTPЗапрос("/auth/v2/token");
	ТекстXML = "username="+Логин+"&password="+Пароль+"&grant_type=password";
	Запрос.УстановитьТелоИзСтроки(ТекстXML,КодировкаТекста.UTF8);
	
	Запрос.Заголовки.Вставить("Content-Type","application/x-www-form-urlencoded");
	ВФ = ВременныйФайл();
	Ответ = Соединение.ОтправитьДляОбработки(Запрос,ВФ);

Из файла ответа получил access_token для дальнейшего использования в запросах через rest api