Скрипт: Авторизация oAuth2.0, получение json, отправка вебхука, APScheduler
Язык: Python + Flask
Cложность: Cредняя
Автор: Данила, менеджер тех.поддержки
Репозиторий: https://github.com/doesntneedname/HabrCareerAPI/tree/main
Если в компании идет постоянный найм технических специалистов через Habr, то интеграция Пачки х Habr Career поможет не пропускать уведомления о новых откликах. На Habr Нет встроенных вебхуков на этот сценарий, поэтому описываем процесс создания API-приложения.
Подробно описали интеграцию, чтобы ее мог реализовать любой пользователь с опытом разработки. Еще в статье приводим примеры кода, чтобы задача была сильно проще.
Для начала вам понадобится виртуальная среда .venv. Развернуть ее можно в любом IDE. Достаточно убедиться, что ваша версия Python - 3 и выше и прописать в терминал следующий код:
python3 -m venv
Также необходимо установить Flask и requests, нужно вписать в терминал команды по отдельности:
pip install Flask
-
pip install requestspip install apscheduler
Теперь нам нужен исходный код, скопируйте его отсюда: https://github.com/doesntneedname/HabrCareerAPI/blob/main/main.py
from flask import Flask, redirect, request, session, jsonify, json
from flask_apscheduler import APScheduler
import requests
import urllib.parse
import math
app = Flask(name)
Подготовка еще не окончена, нужно создать два пустых файла в папке .venv : cached_applies.json и access_token.txt
Теперь нужно задать данные некоторым константам, все подобные действия описаны в коде через #.
Внимательно просмотрите комментарии к коду и занесите ваши данные (кроме WEBHOOK_URL, его мы получим при создании интеграции в Пачке). Также вы можете настраивать таймер, по которому приложение будет выполнять цикл и другие отмеченные переменные, опираясь на описание. Например: одно обращение к серверу и проверка каждую минуту.
На этом шаге нам нужно научить Пачку принимать вебхук от нашего приложения, для этого:
👨💻Новый отклик на вакансию {{vacancy_title}} от {{user_name}}!
Опыт работы: {{experience}} лет
Ссылка на резюме: {{link}}
Email: {{email}}
Телеграм: https://t.me/{{telegram}}
{{habr_profile_link}}
{{body}}
Осталось запустить код на локальном сервере:
Как бонус — когда приходит отклик от нового кандидата, то его можно обсудить с коллегами прямо в треде под сообщением бота.