Имя: Пароль:
1C
1С v8
Выгрузка из сайта в 1С по api
0 Minbo
 
16.03.22
20:27
Привет всем!! есть сайт hh.ru там есть вкладка Кандидаты, то есть вакансии, которые хотят у нас работать, и есть размещенные ими вакансии, надо всю инфу(ФИО, опыт, и т.д,) и выгрузить в 1с в справочник кандидаты
там ответ же в виде json приходит?
я на правильном пути
HTTP = Новый HTTPСоединение("https://api.hh.ru/");
   ЗаголовокЗапроса = Новый Соответствие();
     ЗаголовокЗапроса.Вставить("Content-Type", "application/json");
     ЗаголовокЗапроса.Вставить("Accept", "application/json");
     ЗаголовокЗапроса.Вставить("Accept-Language", "ru");
     ЗапросPOST = Новый HTTPЗапрос("blob/master/docs/vacancies", ЗаголовокЗапроса);
     ЗапросPOST.УстановитьИмяФайлаТела("G:\temp\example.json");
     Результат = HTTP.ОтправитьДляОбработки(ЗапросPOST);
1 ДедМорроз
 
16.03.22
20:43
У ОтправитьДляОбработки есть параметр,позволяющий результат в файл
2 Minbo
 
16.03.22
20:48
(1) получается
ЗапросPOST.УстановитьИмяФайлаТела("G:\temp\example.json");
это лишнее?
3 Kassern
 
16.03.22
20:52
(0) и что так просто можно взять и выгрузить кандидатов по любой вакансии любой организации? Где у вас аутентификация?) Все, что я вижу, вы пытаетесь подключиться к сайту и запросить страницу, которую вы наблюдаете в браузере. Посмотрите документацию API для hh.
4 Minbo
 
16.03.22
21:09
(3) А можете пожалуйста показать, хоть несколько строчек как написать АПИ, как отправлять запрос, какие данные нужны вытащить
5 Kassern
 
16.03.22
21:35
(4) вот тут же все есть, даже на русском языке:
https://dev.hh.ru/
https://github.com/hhru/api

В двух словах:
-общем случае используется авторизация, часто через определенные заголовки которые передаются с запросом.
-Данные об ключе авторизации обычно с личного кабинета берут для api
-Иногда авторизация идет по токенам, вы с определенным запросом заголовками обращаетесь и в ответ получаете действующий токен. Далее уже с этим токеном осуществляете основную работу
Вот небольшой частный случай:
ssl = Новый ЗащищенноеСоединениеOpenSSL( неопределено, неопределено ); /для сайтов https
    Соединение=Новый HTTPСоединение(Адрес,,,,,,ssl);
    Заголовки=Новый Соответствие;
    Заголовки.Вставить("Client-Id",ИДКлиента);
    Заголовки.Вставить("Api-Key",Ключ);
    Заголовки.Вставить("Content-Type","application/json");
    Запрос=Новый HTTPЗапрос("/v2/posting/fbs/unfulfilled/list",Заголовки);
    ЗаписьJSON=Новый ЗаписьJSON;
    //Заполняем тело запроса по условиям API
    ТелоЗапроса=ЗаписьJSON.Закрыть();
    Запрос.УстановитьТелоИзСтроки(ТелоЗапроса);
    Ответ=Соединение.ВызватьHTTPМетод("POST",Запрос);
    Поток=Ответ.ПолучитьТелоКакПоток();
    ЧтениеJSON=Новый ЧтениеJSON;
    ЧтениеJSON.ОткрытьПоток(Поток);
    Соответствие=ПрочитатьJSON(ЧтениеJSON);
    ЧтениеJSON.Закрыть();
6 Kassern
 
16.03.22
21:42
И да, имейте в виду "Доступ к ряду методов для работодателя платный." на хх
7 Minbo
 
16.03.22
21:45
(5) а логин и пароль указывать? или не обязательно, хотя наверно обязательно
8 Kassern
 
16.03.22
21:49
(7) еще раз, читайте документацию, там все есть. В вашем случае, еще и обратить внимание на платные методы
9 Kassern
 
16.03.22
21:51
если уж совсем колхозно делать и парсить страничку сайта, то можно попытаться через поле html документа открыть сайт на нужной страничке а дальше уже попробовать содрать с нужных тегов данные. Но это уже колхоз какой-то, а не автоматизация
10 Minbo
 
16.03.22
21:54
(9) наверно я с вами соглашусь, звучит как-то не очень))
спасибо, попробую, реализовать
11 Minbo
 
17.03.22
21:37
(10) а де взять апи-ключ? в документации про это не сказано
ИДКлиента я нашел это user-id
12 Minbo
 
17.03.22
21:56
(9) у заказчика он должен быть ли нет?
2 + 2 = 3.9999999999999999999999999999999...