PHPackages                             simple-hh-client/client - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [HTTP &amp; Networking](/categories/http)
4. /
5. simple-hh-client/client

ActiveLibrary[HTTP &amp; Networking](/categories/http)

simple-hh-client/client
=======================

001PHP

Since Feb 23Pushed 4y ago1 watchersCompare

[ Source](https://github.com/KirillMochalov/hh-client)[ Packagist](https://packagist.org/packages/simple-hh-client/client)[ RSS](/packages/simple-hh-client-client/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Simple HH client
================

[](#simple-hh-client)

API-клиент сервиса hh.ru на php.

Установка
---------

[](#установка)

В файле composer.json добавить репозиторий и имя пакета:

```
"repositories": [
    ...
    {
        "type": "vcs",
        "url": "https://github.com/KirillMochalov/hh-client"
    }
],
"require": {
    ...
    "simple-hh-client/client": "dev-master"
}

```

Выполнить команду:

```
composer install

```

Авторизация
-----------

[](#авторизация)

Для выполнения любого запроса к hh.ru нужно получить токен соискателя/приложения. Для получение токена соискателя создаем объект класса OAuthClient и вызываем метод getAuthenticationUrl, который вернет url для редиректа пользователя.

```
$oauth_client = new OAuthClient('%client_id%', '%client_secret%', 'http://localhost/hh');
$redirect_url = $oauth_client->getAuthenticationUrl();

```

После авторизации на сайте hh.ru пользователь будет перенаправлен по адресу, указанному в качестве третьего параметра в конструкторе OAuthClient. В примере это .
На странице  создаем объект класса OAuthClient и вызываем метод oAuth с GET-параметром code.

```
$oauth_client = new OAuthClient('%client_id%', '%client_secret%', 'http://localhost/hh');
$access_token = $oauth_client->oAuth($_GET['code'])->getAccessToken();

```

Полученный токен нужно сохранить в сессии или БД для дальнейшего использования.

Использование клиента соискателя
--------------------------------

[](#использование-клиента-соискателя)

Объект класса ApplicantClient создается с использованием ранее полученного токена соискателя.

```
$hh_client = new ApplicantClient($access_token);

```

### Поиск вакансий

[](#поиск-вакансий)

```
$search_string = 'Кассир';
$vacancies = $hh_client->searchVacancies($search_string);

```

### Получение подробных сведений о вакансии

[](#получение-подробных-сведений-о-вакансии)

```
$vacancy_id = 48759683;
$vacancy = $hh_client->getVacancy($vacancy_id);

```

### Список резюме соискателя

[](#список-резюме-соискателя)

```
$resumes = $hh_client->getResumes();

```

### Получение подробных сведений о резюме

[](#получение-подробных-сведений-о-резюме)

```
$resume_id = '77ea924eff03bff13a0039ed1f465361344953';
$resume = $hh_client->getResume($resume_id);

```

### Обновление резюме

[](#обновление-резюме)

```
$resume_id = '77ea924eff03bff13a0039ed1f465361344953';
$resume = $hh_client->getResume($resume_id);
$resume['last_name'] = 'Иванов';
$hh_client->updateResume($resume_id, $resume);

```

### Размещение резюме

[](#размещение-резюме)

Для размещения нового резюме нужно создать объект класса Resume и заполнить обязательные поля. Далее передать объект в метод createResume базового клиента.

```
$resume = new Resume();
$resume->setFirstName('Иван');
$resume->setLastName('Иванов');
$resume->setTitle('Кассир');
$resume->setArea([
    'id' => '4',
    'name' => 'Новосибирск',
    'url' => 'https://api.hh.ru/areas/4',
]);
$resume->setGender([
    'id' => 'male',
    'name' => 'Мужской',
]);
$resume->setResumeLocale([
    'id' => 'RU',
    'name' => 'Русский',
]);
$resume->setCitizenship([
    [
        'id' => '113',
        'name' => 'Россия',
        'url' => 'https://api.hh.ru/areas/113',
    ]
]);
$resume->setAccess([
    'type' => [
        'id' => 'direct',
        'name' => 'доступно только по прямой ссылке',
    ]
]);
...

$client->createResume($resume);

```

Часть полей заполняется элементами из справочников. Подробнее по ссылке [https://github.com/hhru/api/blob/master/docs/resumes.md#create\_edit](https://github.com/hhru/api/blob/master/docs/resumes.md#create_edit)

### Справочники

[](#справочники)

Для получения справочников применяется ряд методов класса ApplicantClient.
getDictionaries - основные справочники;
getAreas - справочник регионов;
getSpecializations - справочник специализаций;
getLanguages - справочник языков;
getMetros - справочник метро;
getLocales - справочник локализаций резюме.

### Дополнительные методы класса ApplicantClient

[](#дополнительные-методы-класса-applicantclient)

getNewResumeConditions - условия полей для создания резюме;
getResumeConditions - условия полей для обновления резюме;
getApplicantAgreement - соглашение об оказании услуг по содействию в трудоустройстве;
deleteResume - удаление резюме;
publishResume - публикация резюме после создания.

ApplicationClient (клиент приложения)
-------------------------------------

[](#applicationclient-клиент-приложения)

### Получение токена приложения

[](#получение-токена-приложения)

Для вызова методов класса ApplicationClient нужно получить токен приложения. Токен приложения необходимо сгенерировать 1 раз. В случае, если токен был скомпрометирован, его нужно запросить еще раз. При этом ранее выданный токен отзывается.

```
$application_client = new ApplicationClient('%client_id%', '%client_secret%');
$application_token = $application_client->generateApplicationToken();

```

### Регистрация нового соискателя

[](#регистрация-нового-соискателя)

Для регистрации пользователей используется класс ApplicationClient. В конструктор нужно передать параметры client\_id, client\_secret и токен приложения.

```
$application_client = new ApplicationClient('%client_id%', '%client_secret%', '%application_token%');

```

Метод createUser принимает параметры: почтовый адрес (логин), имя, фамилия и отчество (необязательно).

```
$login = 'example@example.com';
$first_name = 'Иван';
$last_name = 'Иванов';
$middle_name = 'Иванович';
$application_client->createUser($login, $first_name, $last_name, $middle_name);

```

Требования
----------

[](#требования)

- php ^7.3|^8.0
- ext-json \*

Документация HeadHunter API
---------------------------

[](#документация-headhunter-api)

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity1

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity27

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/1dd679bee4b2031c2283876453cc6a6a7ae5fa207519c5abb93f5bfa249bc0b0?d=identicon)[KirillMochalov](/maintainers/KirillMochalov)

---

Top Contributors

[![xomorg](https://avatars.githubusercontent.com/u/2777325?v=4)](https://github.com/xomorg "xomorg (1 commits)")

### Embed Badge

![Health badge](/badges/simple-hh-client-client/health.svg)

```
[![Health](https://phpackages.com/badges/simple-hh-client-client/health.svg)](https://phpackages.com/packages/simple-hh-client-client)
```

###  Alternatives

[friendsofsymfony/rest-bundle

This Bundle provides various tools to rapidly develop RESTful API's with Symfony

2.8k73.3M319](/packages/friendsofsymfony-rest-bundle)[php-http/discovery

Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations

1.3k309.5M1.2k](/packages/php-http-discovery)[nyholm/psr7

A fast PHP7 implementation of PSR-7

1.3k235.4M2.4k](/packages/nyholm-psr7)[pusher/pusher-php-server

Library for interacting with the Pusher REST API

1.5k94.8M293](/packages/pusher-pusher-php-server)[spatie/crawler

Crawl all internal links found on a website

2.8k16.3M52](/packages/spatie-crawler)[react/http

Event-driven, streaming HTTP client and server implementation for ReactPHP

78126.4M414](/packages/react-http)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
