Sign in

Зарегистрируйтесь, чтобы стать полноправным участником сообщества Masterpro.ws.

HeadHunter resume updater on Ruby on Rails

 

Рабочий пример описанного в статье кода, в числе других Rails Examples - всегда возможно найти в тестовом блоге автора на herokuapp.com, welcome.

 

Продолжение материала на форуме.

 

Порт на ruby php-скрипта, позволяющего через API HeadHunter одним кликом обновить все свои резюме, сколько бы их там ни было у вас на HeadHunter... вернее сказать, порт на Ruby on Rails. Код предтечи по ссылке, там же пространные комментарии, вполне приемлемые и в контексте приведенного далее скрипта (логика не менялась, разумеется, только вместо curl использован гем typhoeus). Можно глянуть видео или потестировать демку, а можно раскатать новый rails-app, создать приложение на dev.hh.ru/admin и попробовать самостоятельно:

 

controller.rb

class HhController < ApplicationController
  def index
  id_hh = ENV['ID_HH']
  secret_hh = ENV['SECRET_HH']
  
 if params[:code].present? 
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/resumes/mine',
  method: :get,
  headers: { Authorization: "Bearer #{hash['access_token']}" }
  )
response = JSON.parse(response.body)
 
@response = []
response['items'].each do |item|
response = Typhoeus::Request.post('https://api.hh.ru/resumes/' + item['id'] + '/publish',
  headers: { Authorization: "Bearer #{hash['access_token']}" }
  )
  if response.body.blank?
      @response << 'Резюме ' + '"' + item['title'] + '"' + ' успешно обновлено.'
 else
 @response <<  'Слишком часто. Резюме ' + '"' + item['title'] + '"' + ' было обновлено ' + item['updated']
  end
    end
      end
        end
          end

 index.html.erb

<% if params[:code].nil? %>
        <%= link_to 'Обновить резюме', 'https://hh.ru/oauth/authorize?response_type=code&client_id=' + ENV['ID_HH'] %>
     <% else %>
      <% @response.each do |line| %>
      <%= line %><br>
     <% end %>
     <%= link_to 'Back', hh_index_path %>
<% end %>

 

SuperJob resume updater on Ruby on Rails

Оставить комментарий

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