×
Ruby on Rails: постинг твитов через Twitter API (04 нояб 2017)

Практикуемся в Ruby on Rails.

Идея HeadHunter negotiations on Rails

Больше
2 мес. 2 нед. назад - 2 мес. 2 нед. назад #1 от Aleksej
Aleksej создал эту тему: HeadHunter negotiations on Rails
Продолжение материала блога HeadHunter resume updater on Ruby on Rails .

Здесь привожу код application rails (view + controller), вытаскивающей через API HeadHunter переписку с работодателями - ваши отклики на вакансии и ответную реакцию на них. Мне кажется, весьма удобно сгруппировать где-нибудь на своем web-сайте такого рода закрытый "уголок соискателя", где информация, касающаяся ваших поисков работы, сгруппирована именно так, как вам представляется удобным - обновления резюме, история рассылки, отклики, просмотры... разумеется, все очень субъективно; показанный далее код, который вы можете свободно тестировать (ссылка на herokuapp в статье по ссылке выше) - всего лишь пример.

Очень рекомендую попробовать, кто не знаком, typhoeus, отличная замена curl на Ruby on Rails; остальное - по вкусу. Например, в показанном далее примере использован, как видите, еще и dotenv (далеко не единственное средство такого рода), дабы уберечь идентификаторы при клонировании вашего application, размещенного на herokuapp:

id_hh = ENV['ID_HH_CORR']
secret_hh = ENV['SECRET_HH_CORR']


, т.е. дополняем Gemfile таким вот (например) образом:

gem 'dotenv-rails', :require => 'dotenv/rails-now'
gem 'typhoeus'


Итак, выводим на страничку 15 последних активных откликов - наименование компании, в HR-отдел которой вы отправили на HeadHunter свое резюме, собственно название приглянувшейся вам вакансии, идентификатор реакции работодателя (отказ, приглашение), статусы Read и Archived вакансии, указанный работодателем адрес, даты. Вы можете совершенно свободно тестировать демку данного приложения; полученные результаты нигде не записываются и недоступны никому, кроме вас. Вы должны быть авторизованы в своей учетке HeadHunter на момент запроса (если нет, приложение перенаправит вас на страницу ввода пароля на портале HeadHunter), также необходимо предоставить разрешение приложению на доступ к данным вашего аккаунта; уверяю, все перечисленное совершенно безопасно. Если необходимо, сразу после теста вы можете удалить предоставленный приложению доступ, открыв Настройки -> Мои приложения в своем аккаунте HeadHunter.


controller
class HhController < ApplicationController
 def index
        if request.GET[:code].present?
          id_hh = ENV['ID_HH_CORR']
          secret_hh = ENV['SECRET_HH_CORR']
      
response = Typhoeus::Request.post('https://hh.ru/oauth/token',
  params: { :grant_type => "authorization_code",
            :client_id => id_hh,
            :client_secret => secret_hh,
            :code => params[:code]
           }
)
hash = JSON.parse(response.body)
response = Typhoeus::Request.get('https://api.hh.ru/negotiations/active?pages=1&per_page=15',
          method: :get,
          headers: { Authorization: "Bearer #{hash['access_token']}" }
  )
@response = JSON.parse(response.body)
end
  end
    end


index.html.erb
<% if request.GET[:code].nil? %>
<%= link_to 'Получение списка активных откликов', 'https://hh.ru/oauth/authorize?response_type=code&client_id=' + ENV['ID_HH_CORR'] %>

   <% else %>
<% if @response.present? %>
 <table class="HHCorrTable">
      <thead>
        <tr>
          <th>Name company</th>
          <th>Vacancy</th>
          <th>Id</th>
          <th>Read</th>
          <th>Archived</th>
          <th>Address</th>
          <th>Created at</th>
          <th>Updated at</th>
        </tr>
      </thead>
      <tbody>
        <% @response['items'].each do |item| %>
          <tr>
            <td><%= item['vacancy']['employer']['name'] %></td>
            <td><%= item['vacancy']['name'] %></td>
            <td><%= item['state']['name'] %></td>
            <td><%= item['read'] %></td>
            <td><%= item['vacancy']['archived'] %></td>
            <td><%= item['vacancy']['address'] %></td>
            <td><%= item['created_at'] %></td>
            <td><%= item['updated_at'] %></td>
          </tr>
        <% end %>
      </tbody>
    </table>
 <% end %>
<% end %>
Последнее редактирование: 2 мес. 2 нед. назад от Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
2 мес. 1 нед. назад #2 от Aleksej
Aleksej ответил в теме API HeadHunter: перечень откликов и история просмотров резюме на rails

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.