|
Как засунуть токен в http запрос? lubitelxml, Страждущий, Tatitutu, paramedic, integer, tulke, mortal, Джордж1, Phace, , toypaul, Garykom, Elf_80_lvl, okmail, Dedal, Fedor-1971, k99, AntiBuh, Sanchez_22, PuhUfa, PLUT, oleg_km, Бычье сердце, Мультук, ДенисСмирнов, MichK, Somebody, ptiz, zippygrill, alex73, arsik, craxx, АгентБезопаснойНацио, alexxx961503, Климов Сергей, KJlag, trad, MWWRuza, zenik, d4rkmesa, nick86, _Batoo, 2S, Irbis, comp2006, Homer, 1cVandal, DmVl76, obs191, Garikk, Fish, vbus, John D, Ёпрст, ТДК, rozer76, lucbak, maxar, Kongo2019, Затейник, unenu, Bad_Aleks, maxab72, Builder, Михаил Козлов, Гипервизор, LuckyStar, San787, ildary, Alex33, Mr_Boogie, Чужой, Crusher, СеньорПрограммист, MM, phabeZ, del123, vandanarajput, Vstur, Доминошник, ads55, p-soft, Caesar, Александр111, shuhard, sikuda
| ☑ | ||
|---|---|---|---|---|
|
0
Климов Сергей
12.02.26
✎
10:28
|
Имеется сторонний http сервис, в нём простейший запрос - получить новости. https://gigtest.ru/api-documentation/egisz-plus/news/
Сгандобил вот такой код: Сервер = "gigtest.ru/api/v2"; Токен = "**********************"; Логин = "********"; Пароль = "********"; ИмяВыходногоФайла = ПолучитьИмяВременногоФайла(); SSL = Новый ЗащищенноеСоединениеOpenSSL(); HTTPСоединение = Новый HTTPСоединение(Сервер, , Логин, Пароль,,,SSL); Запрос = Новый HTTPЗапрос("/news); Запрос.Заголовки.Вставить("Accept", "application/json"); // Пытаемся передать токен Запрос.Заголовки.Вставить("access-token", Токен); Запрос.Заголовки.Вставить("Authorization", "access-token=" + Токен); Ответ = HTTPСоединение.Получить(Запрос, ИмяВыходногоФайла); ОбщегоНазначения.СообщитьПользователю("Код состояния = " + Ответ.КодСостояния); Пробую по всякому засунуть токен в параметры запроса. Или вовсе его не указываю - всегда получаю 403 - Вам не разрешено производить данное действие. Проверьте подключение к защищенной сети. Как правильно токен передать? |
|||
|
1
PLUT
гуру
12.02.26
✎
10:38
|
а зачем в заголовки то вставлять?
пример оттудова: обычный get-запрос curl -X GET "https://gigtest.ru/api/v2/news?access-token={token} и эта, есть постман программа или расширение для гуглохрома бумеранг сначала в них получить ответ, затем уже проще и яснопонятнее будет присунуть в 1С + есть еще "Универсальные инструменты" [УИ], в них есть консоль HTTP-запросов https://github.com/cpr1c/tools_ui_1c |
|||
|
2
ТДК
12.02.26
✎
10:38
|
(0) Судя по информации на первой странице сервиса, токен указывается в параметрах curl -X GET "https://gigtest.ru/api/v2/news?access-token={token}
Для отладки, проверки доступа я рекомендую вначале использовать Postman, а после писать вызов на 1с. Помимо этого, передача СЭМД через провайдеров не всегда, но часто происходит через VPN. Проверь этот момент тоже. |
|||
|
3
Fedor-1971
12.02.26
✎
10:38
|
(0) лучше уточнить у тех, к кому подключаешься, возможно, что токен нужен прямо с троке запроса, например, так:
Запрос = Новый HTTPЗапрос("/" + Токен + "/news"); |
|||
|
4
Климов Сергей
12.02.26
✎
10:44
|
(1) Пример оттуда тоже возвращает 403. Подозреваю, потому, что в нём нет логина и пароля. Как в curl присунть логин и пароль тоже непонятно.
|
|||
|
5
Климов Сергей
12.02.26
✎
10:45
|
(3) Боюсь, что если я в их поддержку полезу с кодом 1С, меня пошдют )))
Решил сначала спросить совета у социально близких. |
|||
|
6
Garykom
гуру
12.02.26
✎
10:45
|
(0) 1. В параметры не в заголовки и не в тело а в сам URL судя по описанию АПИ
2. Учти что в URL надо параметры отдельно кодировать, если внутри не чистая латиница |
|||
|
7
PLUT
гуру
12.02.26
✎
10:46
|
(4) для новостей только токен доступа к апи нужен и три кода ашипки этот метод возвращает
у вас с токеном какую ашипку возвращает? может у вас токен несвежий? |
|||
|
8
Garykom
гуру
12.02.26
✎
10:46
|
(4) Про логин и пароль в описании апи не вижу
|
|||
|
9
ТДК
12.02.26
✎
10:46
|
(4) прислушайся к совету насчёт Postman и проверки доступа к API через него. После уже делай в 1С.
|
|||
|
10
maxar
12.02.26
✎
10:47
|
(4) возможно в заголовки нужно добавить -H "Content-Type: application/json" \
|
|||
|
11
Garykom
гуру
12.02.26
✎
10:47
|
(5) А ты с curl ползи в техподдержку, пусть рабочий пример покажут с логином и паролем
|
|||
|
12
Garykom
гуру
12.02.26
✎
10:47
|
(9) В жопу постман
curl намного лучше и встроен в винду давно |
|||
|
13
PLUT
гуру
12.02.26
✎
10:48
|
(5) При возникновении вопросов или проблем с API обращайтесь в техническую поддержку
это из (0) |
|||
|
14
Garykom
гуру
12.02.26
✎
10:49
|
Общие требования к использованию API
Передача сведений осуществляется в рамках защищённого соединения с помощью OpenVPN-ГОСТ; Аутентификация: в каждом запросе необходимо передавать параметр access-token; Для получения ответа в формате JSON необходимо передавать заголовок запроса Accept:application/json; Кодировка ответа UTF-8; СЭМД и подпись врача передаются в Base64. |
|||
|
15
Климов Сергей
12.02.26
✎
10:52
|
(10) Есть такое:
Запрос.Заголовки.Вставить("Accept", "application/json"); Но до возврата джейсона дело то не доходит, отлуп получаю. |
|||
|
16
Климов Сергей
12.02.26
✎
10:53
|
(12) Я не очень понимаю, как строку curl разложить в код 1С. Собственно, я вижу как в curl указывается токен. Но как мне сделать тоже самое в 1С - не пойму. Туп в колене.
|
|||
|
17
ТДК
12.02.26
✎
10:55
|
(16) в 1с это будет в параметрах запроса
|
|||
|
18
PLUT
гуру
12.02.26
✎
10:55
|
(16) для начала у техподдержки узнай про свой токен. может он протух или техподдержка у себя там галочку какую должны поставить
затем в curl или в постмане или УИ (универсальные интсрументы) добейся с помощью техподдержки и такой-то матери ответа в Джысон а уже потом мучай 1С |
|||
|
19
PLUT
гуру
12.02.26
✎
11:02
|
(16) типа такого (используется коннектор http)
https://github.com/vbondarevsky/Connector только у тебя вместо apikey будет свежий токен пример получения джысона//Запрос к АПИ ФНС МетодAPI = "egr"; ПутьНаСервере = МетодAPI + "?req=" + Источник["ИНН"] + "&key=" + apikey; Результат = ВыполнитьGET_API_ФНС(ПутьНаСервере); &НаСервере Функция ВыполнитьGET_API_ФНС(ПутьНаСервере) Таймаут = 120; Заголовки = Новый Соответствие; Заголовки.Вставить("Content-Type", "application/json; charset=utf-8"); Результат = КоннекторHTTP.GetJson("https://api-fns.ru/api/ + ПутьНаСервере, Неопределено, Новый Структура("Заголовки, |Таймаут", Заголовки, Таймаут ) ); Возврат Результат; КонецФункции |
|||
|
20
ДенисСмирнов
12.02.26
✎
11:08
|
(16) так с curl обращение работает? Да или нет?
|
|||
|
21
Климов Сергей
12.02.26
✎
11:29
|
(20) Нет
{ "name": "Forbidden", "message": "Вам не разрешено производить данное действие. Проверьте подключение к защищенной сети", "code": 0, "status": 403 } |
|||
|
22
Джордж1
12.02.26
✎
11:35
|
(21)вы запрос выложите полностью свой - что уходит на сервер. Только токен удалите
|
|||
|
23
ТДК
12.02.26
✎
11:32
|
(21) подключение к защищенной сети работает?
|
|||
|
24
Климов Сергей
12.02.26
✎
11:35
|
(22) curl -X GET "https://gigtest.ru/api/v2/news?access-token=*********************"
|
|||
|
25
Джордж1
12.02.26
✎
11:36
|
(24)токен не протух?
|
|||
|
26
Климов Сергей
12.02.26
✎
11:44
|
(25) Прислали пару дней назад, на официальной бумаге с подписью и печатью.
|
|||
|
27
ДенисСмирнов
12.02.26
✎
11:45
|
(21) пишите в поддержку. должно работать. все как в (18) короче
|
|||
|
28
Джордж1
12.02.26
✎
11:45
|
(26)ну тогда в техподдержку
|
|||
|
29
Климов Сергей
12.02.26
✎
11:54
|
(1) Спасибо, товарищ!👍 С помощью консоли запросов УИ со второго тыка получилось!
|
|||
|
30
Климов Сергей
12.02.26
✎
12:16
|
Принципиальное отличие в следующем:
1. //Сервер = "gigtest.ru/api/v2"; // Неправильно! Сервер = "gigtest.ru"; //Запрос = Новый HTTPЗапрос("/news); //Неправильно! Запрос = Новый HTTPЗапрос("/api/v2/news); 2. И токен вот так: Токен = "***************************"; ПрефиксТокена = "access-token="; НовыйЗапрос.Заголовки.Вставить("Authorization", ПрефиксТокена +" "+Токен); |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |