FAQ по Superjob API (публикация вакансий)

Недавно я рассказывал о Headhunter API для публикации вакансий, упомянув Superjob. Теперь, реализовав тот же функционал на Superjob API будет справедливо поделиться с вами полученным опытом.

image

Работа с API Superjob

Итак, есть задача по публикации вакансий на Superjob, вам понадобятся:

Актуальная версия API

Здесь всё ожидаемо — версионность присутствует и передаётся в URLе:

https://api.superjob.ru/:version/method_name/:params

Регистрация приложения

Тоже максимально простая процедура — создать аккаунт, создать приложение, получить токены. Без ожиданий, регистрации и смс.

redirect_uri, передаваемый в параметрах, видимо, вообще не связан с Callback URL, указанном в настройках приложения. Его (Callback URL) можно даже и не указывать, всё будет работать.

А также

Указать обязательные параметры

Обязанности, требования и условия — необязательные параметры вакансии, а вот название компании и описание её деятельности — обязательно нужно передавать в каждую вакансию.

В прошлый раз (на HeadHunter) была попытка публиковать ссылку внутри вакансии, здесь же нашёлся параметр url, однако, где он отображается в вакансии понять не удалось.

Запрашивать ссылку на созданную вакансию

Вместо ожидаемого superjob/vacancies/id ссылка формируется в виде vacancy-name-id.html, но в ответе приходит лишь id вакансии. Русский текст проходит транслитерацию неизвестным алгоритмом (или по одному из N ГОСТов), что делает невозможным формировать ссылку на своей стороне. Приходится делать отдельный запрос на роут api откуда уже возвращается полная ссылка.

Писать с заглавной буквы

При авторизации возвращается объект с полями token_type и access_token, которые необходимо использовать для дальнейших запросов в виде строки: token_type + ' ' + access_token. При таком подходе Superjob ругается на «неверный тип токена» потому что возвращают они token_type = bearer, а ожидают token_type = Bearer.

Выбрать между графиком работы и типом занятости

Superjob объединяет эти два поля, предлагая из списка, например, частичную занятость или неполный день. Это неудобно когда есть парттаймеры, срочные договора и другие варианты развития событий.


Итоги

Про форматирование и задачи без аналитики

В прошлый раз я упомянул, что вакансии на HeadHunter поддерживают HTML и на сайте для этого прикручен WYSIWYG-редактор. В дополнение к задаче публикации ссылок в вакансиях (которая слегка провалилась), прилетела и задача прикрутить WYSIWYG для них в нашем приложении. Текст вакансии вместе с форматированием сохраняется в БД, поэтому в таком же виде он улетел на Superjob, который HTML не поддерживает. В принципе, ожидаемо, но главный факап в том, что посмотрев эту же вакансию на HeadHunter, обнаружилось, что он тоже не поддерживает присланное форматирование! Теги просто удаляются и на выходе остаётся голый текст. Как итог — WYSIWYG будет выпиливаться, а все записанные вакансии с HTML надо будет в трёх БД как-то распарсить и почистить лишнее.

Хочется написать много плохих слов о работе на аутсорсе, но как-нибудь в другой раз.

Про удобство

Если сравнивать HeadHunter и Superjob, то очевидно, что с последним всё гораздо проще. Интеграция построилась очень быстро — тексты ошибок не сбивали с толку, всё удалось протестировать на нескольких окружениях из-за необязательности Callback URL.

Что меня расстроило — это отсутствие Superjob API на Github, зато повеселил там «простой клиент» на PHP в полторы тысячи строк. Для общения с техподдержкой есть обратная связь, однако, в форме обращения отсутствует категория вопросов по API. Ну такое.

Заключение

В целом, вряд ли можно однозначно сказать что у кого-то лучше, у кого-то хуже. У Superjob есть к чему придраться, но в конечном счёте сервис предоставляет нормальный API, полностью решающий наши задачи.


ссылка на оригинал статьи https://habr.com/ru/post/465663/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *