Sign in

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

SuperJob resume updater on Ruby on Rails

 

Ну, коли уже есть в этом блоге скрипт обновления резюме через API HeadHunter - почему бы не написать скрипт, делающий то же самое, но на Суперджобе... вполне, вроде бы, логично. Для разнообразия и первый и второй скрипты написаны в качестве application Ruby on Rails; официальный клиент API SuperJob уже сто лет как доступен на гитхабе, кому нужен именно php, забирайте оттуда.

 

 

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

 

Увы, текущее положение дел и на HeadHunter, и на SuperJob (да и не только там) - совсем не радует сегодня: количество адекватных вакансий в моей профессиональной сфере деятельности уменьшилось, по моим же субъективным оценкам, на порядок, если не больше, подавляющее большинство предлагаемых работодателями рабочих мест - безнадежно-серые, как жизнь в России, gray salary, самые разнообразные формы цветных зарплат и просто черный нал. Подробнее об этой безрадостной на рынке труда ситуации см. статью блога Русский шансон на российском рынке труда. Интермедия, здесь же, не тратя лишних слов, переходим прямиком к скрипту, написанному, конечно, довольно поспешно - не стесняйтесь изменить, допилить или форкнуть - и тем не менее, полностью рабочему, что удостоверяет скринкаст в начале статьи. Кто не в теме; - из API SuperJob и API HeadHunter возможно вытащить практически любую информацию вашего аккаунта, от количества просмотров резюме до перечня подходящих вакансий, и не только; я же, как видите, for example ограничился функцией обновления резюме, публикацией ответов сервера и фотографией. Это далеко не предел, дерзайте. Вместо curl использован гем typhoeus, не забудьте включить в Gemfile своего rails-app.

 

id_superjob = ENV['ID_SUPERJOB'] #'*******************'
secret_superjob = ENV['SECRET_SUPERJOB'] #'*******************'

if request.GET[:code].nil?
  link_to 'Обновить резюме', 'https://www.superjob.ru/authorize/?client_id=' + id_superjob + '&redirect_uri=https%3a%2f%2fmasterpro.herokuapp.com%2fsuperjob%2findex&state=custom' #не забываем параметр redirect_uri
          else
          # запрос access token
response = Typhoeus::Request.post('https://api.superjob.ru/2.0/oauth2/access_token/',
  params: { :code => params[:code],
            :client_id => id_superjob,
            :client_secret => secret_superjob,
            :redirect_uri => 'url_of_your_rails_app'
           }
)
hash = JSON.parse(response.body)
     # запрос списка резюме
response = Typhoeus::Request.post('https://api.superjob.ru/2.0/user_cvs/',
  headers: { Authorization: "Bearer #{hash['access_token']}" }
)
response = JSON.parse(response.body)
     # итерируем ответ сервера, выводим данные резюме
response['objects'].each do |ob|
     concat ob['id']
     concat(tag 'br')
     concat ob['profession']
     concat(tag 'br')
     # и наконец обновляем даты всех резюме, используя полученные id
response = Typhoeus::Request.post('https://api.superjob.ru/2.0/user_cvs/update_datepub/' + "#{ob['id']}",
  headers: { Authorization: "Bearer #{hash['access_token']}" }
)
  concat JSON.parse(response.body)
  concat(tag 'br')
    end
    # послания от работодателей
      response = Typhoeus::Request.get('https://api.superjob.ru/2.0/messages/',
  method: :get,
  headers: { Authorization: "Bearer #{hash['access_token']}" }
)
 response = JSON.parse(response.body)
 response['objects'].each do |ob|
     concat Time.at(ob['date_sent'])
     concat(tag 'br')
     concat ob['firm_name']
     concat(tag 'br')
     concat ob['type']
     concat(tag 'br')
  concat ob['body']
     concat(tag 'p')
  end
     # текущий пользователь
response = Typhoeus::Request.get('https://api.superjob.ru/2.0/user/current/',
  method: :get,
  headers: { Authorization: "Bearer #{hash['access_token']}" }
)
response = JSON.parse(response.body)
  imagepath = response['photo']
  image_tag(imagepath)
 end

 

2 комментарии

  • Aleksej

    написал Aleksej

    Понедельник, 16 октября 2017 15:07

    Все не так.
    Здесь не получится "запустить скрипт".
    Начинайте с азов: https://masterpro.ws/ruby-on-rails-eto-prosto
    Добейтесь для начала, чтоб хотя б стартовая страница вашего нового проекта отображалась в браузере.
    Если статьи недостаточно, "чтоб начать", велкам на форум, создавайте топик, буду отвечать по мере сил и времени.

  • Данила

    написал Данила

    Понедельник, 16 октября 2017 13:30

    Здравствуйте!

    Не совсем понял как можно запустить данный скрипт?

    Установил Ruby 2.4.2p198 на Ubuntu
    Создал файл sj.rb
    в него скопировал содержимое вашего скрипта, поменял 'ID_SUPERJOB' и 'SECRET_SUPERJOB' на свои.

    запустил скрипт
    danila@test: /home/danila/superjob# ruby sj.rb

    выдает:
    sj.rb:4:in `': undefined local variable or method `request' for main:Object (NameError)

    Что я не так сделал, подскажите плиз?

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

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