Ну, коли уже есть в этом блоге скрипт обновления резюме через API HeadHunter - почему бы не написать скрипт, делающий то же самое, но на Суперджобе... вполне, вроде бы, логично. Для разнообразия и первый и второй скрипты написаны в качестве application Ruby on Rails; официальный клиент API SuperJob уже сто лет как доступен на гитхабе, кому нужен именно php, забирайте оттуда.
Увы, текущее положение дел и на HeadHunter, и на SuperJob (да и не только там) - совсем не радует сегодня: количество адекватных вакансий в моей профессиональной сфере деятельности уменьшилось, по моим же субъективным оценкам, на порядок, если не больше, подавляющее большинство предлагаемых работодателями рабочих мест - безнадежно-серые, как жизнь в России, gray salary, самые разнообразные формы цветных зарплат и просто черный нал. Подробнее об этой безрадостной на рынке труда ситуации см. статью блога Русский шансон на российском рынке труда. Интермедия, здесь же, не тратя лишних слов, переходим прямиком к скрипту, написанному, конечно, довольно поспешно - не стесняйтесь изменить, допилить или форкнуть - и тем не менее, полностью рабочему, что удостоверяет скринкаст в начале статьи. Кто не в теме; - из API SuperJob и API HeadHunter возможно вытащить практически любую информацию вашего аккаунта, от количества просмотров резюме до перечня подходящих вакансий, и не только; я же, как видите, for example ограничился функцией обновления резюме и публикацией ответов сервера. Это далеко не предел, дерзайте. Вместо curl использован гем typhoeus, не забудьте включить в Gemfile своего rails-app.
logics
def index
id_superjob = ENV['ID_SUPERJOB']
secret_superjob = ENV['SECRET_SUPERJOB']
if params[:code].present?
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 => 'https://masterpro.herokuapp.com/superjob/index'
}
)
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 = []
response['objects'].each do |ob|
response = Typhoeus::Request.post('https://api.superjob.ru/2.0/user_cvs/update_datepub/' + "#{ob['id']}",
headers: { Authorization: "Bearer #{hash['access_token']}" }
)
@response << ob['profession']
@response << JSON.parse(response.body)
end
end
end
index.html.erb
<% if params[:code].nil? %>
<%= link_to 'Обновить резюме', 'https://www.superjob.ru/authorize/?client_id=' + ENV['ID_SUPERJOB'] + '&redirect_uri=https%3a%2f%2fmasterpro.herokuapp.com%2fsuperjob%2findex&state=custom' %>
<% else %>
<% @response.each do |line| %>
<%= line %><br>
<% end %>
<%= link_to 'Back', superjob_index_path %>
<% end %>