Получение расчетной стоимости доставки по API Яндекс.Доставка (b2b.taxi.yandex.net)
На сайте яндекса есть описание: https://yandex.ru/dev/logistics/api/ref/v1/estimate/IntegrationV1CheckPrice .html
Я имею 2 пары координат, это откуда взять товар(долгота и широта) и куда отвезти(долгота и широта).
Токен я получил.
Вот тестовая процедура:
Нужна помощь по следующим вопросам:
1) Возвращает все время 401 ошибку.
2) Куда и как мне в примере ввести координаты откуда и куда.
Я имею 2 пары координат, это откуда взять товар(долгота и широта) и куда отвезти(долгота и широта).
Токен я получил.
Вот тестовая процедура:
&НаКлиенте
Процедура ПолучитьЦенуДоставки(Команда)
Сервер = "b2b.taxi.yandex.net";
Адрес = "b2b/cargo/integration/v1/check-price";
ТелоЗапроса = "{
| ""items"": [
| {
| ""quantity"": 1,
| ""size"": {
| ""height"": 0.05,
| ""length"": 0.15,
| ""width"": 0.1
| },
| ""weight"": 2.105
| }
| ],
| ""requirements"": {
| ""cargo_loaders"": 1,
| ""cargo_type"": ""lcv_m"",
| ""pro_courier"": false,
| ""taxi_class"": ""cargo""
| },
| ""skip_door_to_door"": false
|}";
Oauth = "OAuth oauth_token=""AQAAAAADUfO2AAdkUhSK1tBqW0Unrm-_SYKwKzc"", oauth_client_id=""46ed3c09bd99497299662bf8cc8df260""";
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(Сервер,,,,,,ЗащищенноеСоединение);
Заголовки = Новый Соответствие;
Заголовки.Вставить("Accept-Language", "string");
Заголовки.Вставить("Authorization", Oauth);
Запрос = Новый HTTPЗапрос(Адрес, Заголовки);
Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
Ответ = Соединение.ОтправитьДляОбработки(Запрос);
Если Ответ.КодСостояния = 200 Тогда
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку());
Данные = ПрочитатьJSON(ЧтениеJSON, Ложь);
Для Каждого стр Из Данные Цикл
Результат =""+ Результат+стр.Значение+"="+стр.Ключ+Символы.ВК;
КонецЦикла;
Сообщить("Результат:"+Результат);
Иначе
Если Ответ.КодСостояния = 401 Тогда
Сообщить("Ресурс API вызван без авторизационных данных, сервер Маркета возвратил HTTP-статус 401 Unauthorized");
Иначе
Сообщить(Ответ.КодСостояния);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
ПоказатьНужна помощь по следующим вопросам:
1) Возвращает все время 401 ошибку.
2) Куда и как мне в примере ввести координаты откуда и куда.
Найденные решения
Здравствуйте,
Тут 2 варианта т.к. ошибка говорит о том, что вы не можете авторизоваться:
1. В параметрах Http-соединения укажите логин и пароль от личного кабинета, скорее всего в этом ошибка, т.к. токен вы передаете для доступа к самой функции откуда запрашиваете данные, а на сервере не проходите по логину и паролю.
[Скрин.png]
2. Некорректный токен, попробуйте проделать все еще раз по инструкции и получить рабочий токен.
Проверьте сначала 1 потом 2, я думаю у вас все получится. Обработку для проверки прилагаю [РассчетЯндексДоставки.epf].
Тут 2 варианта т.к. ошибка говорит о том, что вы не можете авторизоваться:
1. В параметрах Http-соединения укажите логин и пароль от личного кабинета, скорее всего в этом ошибка, т.к. токен вы передаете для доступа к самой функции откуда запрашиваете данные, а на сервере не проходите по логину и паролю.
[Скрин.png]
2. Некорректный токен, попробуйте проделать все еще раз по инструкции и получить рабочий токен.
Проверьте сначала 1 потом 2, я думаю у вас все получится. Обработку для проверки прилагаю [РассчетЯндексДоставки.epf].
Прикрепленные файлы:
РассчетЯндексДоставки.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Это не правильно. От этого ошибка 401.
Должно быть так:
Координаты вводятся в массиве, перед ""skip_door_to_door"".
Соответственно вместо Долгота и Широта подставить нужные координаты.
Еще вот это не правильно:
в документации string означает строковый тип, а не значение string. Т.е. должно быть строковое значение языка.
Можно попробовать так:
Oauth = "OAuth oauth_token=""AQAAAAADUfO2AAdkUhSK1tBqW0Unrm-_SYKwKzc"", oauth_client_id=""46ed3c09bd99497299662bf8cc8df260""";
Это не правильно. От этого ошибка 401.
Должно быть так:
Oauth = "Bearer AQAAAAADUfO2AAdkUhSK1tBqW0Unrm-_SYKwKzc";
Координаты вводятся в массиве, перед ""skip_door_to_door"".
"route_points": [
{
"coordinates": [
Долгота1,
Широта1
]
},
{
"coordinates": [
Долгота2,
Широта2
]
}
],
ПоказатьСоответственно вместо Долгота и Широта подставить нужные координаты.
Еще вот это не правильно:
Заголовки.Вставить("Accept-Language", "string");
в документации string означает строковый тип, а не значение string. Т.е. должно быть строковое значение языка.
Можно попробовать так:
Заголовки.Вставить("Accept-Language", "ru");
Спасибо, за подсказу, но к сожалению все равно выходит 401.
Прикрепленные файлы:
тестAPIЯндексДоставка.epf
(3) токен актуальный ?
Токен вообще от яндекс.доставка? Токен от других сервисов яндекса не подходит.
Инструкция получения нужного токе описана в документации:
https://yandex.ru/dev/logistics/api/about/access.html
Токен вообще от яндекс.доставка? Токен от других сервисов яндекса не подходит.
Инструкция получения нужного токе описана в документации:
(1)
Здравствуйте.
Если у вас передаются координаты то они должны иметь примерно такой вид: "[[0.1,0.2],[0.11,0.12]]"
первая точка отправления, вторая точка доставки.
в коде состояния разве не строка?
и я бы поставил точку останова на этой строке и посмотрел что содержится в ответе, там можно результат смотреть возвращаемого запроса от яндекса
Здравствуйте.
Если у вас передаются координаты то они должны иметь примерно такой вид: "[[0.1,0.2],[0.11,0.12]]"
первая точка отправления, вторая точка доставки.
Ответ.КодСостояния = 200
в коде состояния разве не строка?
и я бы поставил точку останова на этой строке и посмотрел что содержится в ответе, там можно результат смотреть возвращаемого запроса от яндекса
Здравствуйте,
Тут 2 варианта т.к. ошибка говорит о том, что вы не можете авторизоваться:
1. В параметрах Http-соединения укажите логин и пароль от личного кабинета, скорее всего в этом ошибка, т.к. токен вы передаете для доступа к самой функции откуда запрашиваете данные, а на сервере не проходите по логину и паролю.
[Скрин.png]
2. Некорректный токен, попробуйте проделать все еще раз по инструкции и получить рабочий токен.
Проверьте сначала 1 потом 2, я думаю у вас все получится. Обработку для проверки прилагаю [РассчетЯндексДоставки.epf].
Тут 2 варианта т.к. ошибка говорит о том, что вы не можете авторизоваться:
1. В параметрах Http-соединения укажите логин и пароль от личного кабинета, скорее всего в этом ошибка, т.к. токен вы передаете для доступа к самой функции откуда запрашиваете данные, а на сервере не проходите по логину и паролю.
[Скрин.png]
2. Некорректный токен, попробуйте проделать все еще раз по инструкции и получить рабочий токен.
Проверьте сначала 1 потом 2, я думаю у вас все получится. Обработку для проверки прилагаю [РассчетЯндексДоставки.epf].
Прикрепленные файлы:
РассчетЯндексДоставки.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот