`def add
@vk_track = VkTrack.find(params[:id])
begin
if params[:captcha] && params[:captcha_sid]
@id = @vk.audio.add(audio_id: @vk_track.vk_id, owner_id: @vk_track.owner_id, captcha_sid: params[:captcha_sid], captcha_key: params[:captcha])
else
@id = @vk.audio.add(audio_id: @vk_track.vk_id, owner_id: @vk_track.owner_id)
end
respond_to do |format|
format.html {}
format.js {}
format.json { render json: @vk_track }
end
rescue VkontakteApi::Error => @e
if @e.error_code == 14
respond_to do |format|
format.js { render 'captcha' }
end
else
raise
end
end
end`
@add_audio = AddAudio.new(@vk_track)
@add_audio.call(params[:captcha], params[:captcha_sid]) # в случае без капчи тут придут два nil
if @add_audio.success?
respond_to do |format|
format.html {}
format.js {}
format.json { render json: @vk_track }
end
elsif @add_audio.captcha?
respond_to do |format|
format.js { render 'captcha' }
end
else
# другая ошибка (не капча)
end
scope
при генерации урла авторизации
VkontakteApi.authorization_url(type: :client, scope: [:wall])
scope: [:offline, :wall]