Обмен с сайтом. Авторизация по токену Bearer

1. mars207 27 18.07.19 09:33 Сейчас в теме
Всем доброго времени суток!

Есть задача получить продажи с сайта. У сайта есть api к которому можно обратиться. Но сайт использует curl авторизацию с токеном. Токен есть и он статический.
Api сайта работает, проверил с помощью программы Postman. Но при попытке получить данные в 1С я получаю ответ 400 Bad Request.
Может кто-то подскажет что делаю не так? Были ли у кого-то подобные реализации?

Пример запроса что дали разработчики сайта:

curl -k -H"Authorization: Bearer qeydxk7sktul1o776chzzkabdfl7cnuh8ffinor7xqm2kjrbsrfvauvwzbi2­7nwz " https://my.vendotek.com/api/v1/unit

/////////////
Пример моего кода:

Соединение = Новый HTTPСоединение(
	IPАдрес, // сервер (хост)
	443, // порт, по умолчанию для http используется 80, для https 443
	логин, // пользователь для доступа к серверу (если он есть)
	пароль, // пароль для доступа к серверу (если он есть)
	, // здесь указывается прокси, если он есть
	, // таймаут в секундах, 0 или пусто - не устанавливать
	// защищенное соединение, если используется https
	);
	
	
	ЗаголовокЗапросаHTTP = Новый Соответствие();  
	ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
	ЗаголовокЗапросаHTTP.Вставить("Authorization", Токен);

Запрос = Новый HTTPЗапрос("https://my.vendotek.com/api/v1/unit", ЗаголовокЗапросаHTTP);
HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
ТелоОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
Показать
Прикрепленные файлы:
Вознаграждение за ответ
Показать полностью
Найденные решения
7. login1020 133 18.07.19 10:01 Сейчас в теме +2 $m
Соединение = Новый HTTPСоединение(
IPАдрес, // сервер (хост)
443, // порт, по умолчанию для http используется 80, для https 443
логин, // пользователь для доступа к серверу (если он есть)
пароль, // пароль для доступа к серверу (если он есть)
, // здесь указывается прокси, если он есть
, // таймаут в секундах, 0 или пусто - не устанавливать
// защищенное соединение, если используется https
);

Вы явно указываете, что используется защищенной соединение?

Пример:
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Яндекс = новый HTTPСоединение("cloud-api.yandex.net",,,,,,SSL);
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 18.07.19 09:42 Сейчас в теме
(1) обычно Токен приходит в виде "qeydxk7sktul1o776chzzkabdfl7cnuh8ffinor7xqm2kjrbsrfvauvwzbi­27nwz". Т.е. слово Bearer в нем нет. Для авторизации по токену нужно добавить это слово самим.
ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer "+Токен);
chrnv; wbazil; mars207; +3 Ответить
3. mars207 27 18.07.19 09:50 Сейчас в теме
(2)Я пробовал этот вариант. Результат тот же.
4. login1020 133 18.07.19 09:51 Сейчас в теме
(3) а мне кажется что проблема в этом
The plain HTTP request was sent to HTTPS port
5. spacecraft 18.07.19 09:54 Сейчас в теме
(3) тогда показывайте код Новый HTTPСоединение. данные можете подставить левые.
Токен уже есть и его получать не нужно?
Тогда логи и пароль указывать в соединении не нужно.
Ну да, и доступ требуется по защищенному соединению.
6. spacecraft 18.07.19 10:00 Сейчас в теме
(1)
Запрос = Новый HTTPЗапрос("https://my.vendotek.com/api/v1/unit", ЗаголовокЗапросаHTTP);

Вот тут тоже не верно.
Что-то в этом роде:
Соединение = Новый HTTPСоединение("my.vendotek.com",,,,,,Новый ЗащищенноеСоединениеOpenSSL());
ЗаголовокЗапросаHTTP = Новый Соответствие(); 
ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json"); 
ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer "+Токен); 

Запрос = Новый HTTPЗапрос("api/v1/unit", ЗаголовокЗапросаHTTP); 
HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос); 
ТелоОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
psa247; Henistaromin; login1020; +3 Ответить
8. login1020 133 18.07.19 10:02 Сейчас в теме
10. spacecraft 18.07.19 10:06 Сейчас в теме
(1) в дополнение к (6):
Вы точно post запрос хотите отправить, а не get?
Вроде как get в примере.
Тогда вместо HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос);
нужно:
HTTPОтвет = Соединение.Получить(Запрос);
7. login1020 133 18.07.19 10:01 Сейчас в теме +2 $m
Соединение = Новый HTTPСоединение(
IPАдрес, // сервер (хост)
443, // порт, по умолчанию для http используется 80, для https 443
логин, // пользователь для доступа к серверу (если он есть)
пароль, // пароль для доступа к серверу (если он есть)
, // здесь указывается прокси, если он есть
, // таймаут в секундах, 0 или пусто - не устанавливать
// защищенное соединение, если используется https
);

Вы явно указываете, что используется защищенной соединение?

Пример:
SSL = Новый ЗащищенноеСоединениеOpenSSL();
Яндекс = новый HTTPСоединение("cloud-api.yandex.net",,,,,,SSL);
9. mars207 27 18.07.19 10:05 Сейчас в теме
(7)Не указывал. Сейчас получил "Unauthorized.". Копаю дальше
11. mars207 27 18.07.19 10:17 Сейчас в теме
Благодарю за советы. Все получилось. Правильный код ниже:

Соединение = Новый HTTPСоединение(
	IPАдрес, // сервер (хост)
	443, // порт, по умолчанию для http используется 80, для https 443
	Логин, // пользователь для доступа к серверу (если он есть)
	пароль, // пароль для доступа к серверу (если он есть)
	, // здесь указывается прокси, если он есть
	, // таймаут в секундах, 0 или пусто - не устанавливать
	Новый ЗащищенноеСоединениеOpenSSL()// защищенное соединение, если используется https
	);
		
	ЗаголовокЗапросаHTTP = Новый Соответствие();  
	ЗаголовокЗапросаHTTP.Вставить("Content-Type", "application/json");
	ЗаголовокЗапросаHTTP.Вставить("Authorization", "Bearer " +Токен);
	
	Запрос = Новый HTTPЗапрос("/api/v1/unit", ЗаголовокЗапросаHTTP);
	HTTPОтвет = Соединение.Получить(Запрос);
	ТелоОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
Показать
NicolasCage; websamson; additive; request4t; CyclesOfID; yaneev; irtk; miavolas; wunderland; +9 Ответить
12. danil157 18 16.09.20 13:59 Сейчас в теме
(11) Спасибо тебе добрый человек)
irtk; MZen; mars207; +3 Ответить
13. user625107_barabambler1s 09.11.21 17:07 Сейчас в теме
А что в логине/пароле? Пусто?
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день