Четверг, 17 августа 2017 22:36

HeadHunter resume updater on Ruby on Rails

Оцените материал
(0 голосов)

 

Блог на рельсах. Live Demo.

 

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

 

Dev banner 2

 

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

 

Update 04.04.2022. Все, кто хотел бы, используя описанную логику кода или любую иную, поэкспериментировать с API HeadHunter, примите добрый совет: не пробуйте этого делать на праздниках и уикендах, в такие дни API HeadHunter, случается, или лежит, или возвращает голимую херню вместо обусловленного докой JSON. На прошедших выходных имел случай в *дцатый раз убедиться в справедливости данного тезиса; подробно не анализировал, ибо не вижу в данном случае ни малейшего смысла терять свое время. А внешняя фабула такова: ранним утречком в понедельник, часиков эдак в 11 или 12, появляются, видимо, на работе гениальные российские прогеры/девопсы HeadHunter и поднимают свой API, т.е. плюс-минус к полудню все начинает, как ни в чем ни бывало, работать. Обращаться в саппорт с этим бесполезно, последует обычное русское #ихтамнет и #авотнедокажете, посему просто примите к сведению сказанное: ну вот так люди здесь живут и работают, иначе не умеют, въелось у них в плоть и кровь... подробно развивать данный тезис в контексте происходящих невеселых событий в данный момент не стану, по вполне понятным причинам, но вы меня поняли.

 

logics

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

 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

Последнее изменениеПонедельник, 04 апреля 2022 18:18

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

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

Комментарии в блоге