require "rubygems" require 'net/http' require 'cgi' require 'digest/md5' require 'json/ext' require 'httparty' require "active_support/core_ext" @app_id = '2157608' email = 'truschev@gmail.com' password = 'xxx' app_rights = 16383 # Залогинивание и получение куки resp = Net::HTTP.post_form(URI.parse('http://vkontakte.ru/login.php'), {'m' => '1', 'email' => email, 'pass' => password}) cookies = resp.response['set-cookie'] remixsid = cookies.split('remixsid=')[1].split(';')[0].split(',')[0] header = { "Cookie" => 'remixsid=' + remixsid } conn = Net::HTTP.new('vkontakte.ru', 80) # Парсим форму авторизации приложения resp = conn.get('http://vkontakte.ru/login.php?app=' + @app_id + '&layout=popup&type=browser&settings=32767', header) auth_hash = resp.body.split('var auth_hash = \'')[1].split('\';')[0] # Авторизизуем приложение resp = conn.get('http://vkontakte.ru/login.php?act=a_auth&app=' + @app_id + '&hash=' + auth_hash + '&permanent=1', header) auth_json = resp.body p auth_json auth = JSON.parse(auth_json) APP_ID = "2157608" private_key = "cad2kydg0I" url = URI.parse("http://api.vkontakte.ru") http = Net::HTTP.new(url.host, url.port) p auth sig = Digest::MD5.hexdigest(auth["mid"].to_s + "api_id=#{APP_ID}format=JSONmethod=isAppUserv=3.0" + auth["secret"]) resp, body = http.get("http://api.vkontakte.ru/api.php?api_id=#{APP_ID}&format=JSON&method=isAppUser&sid=#{auth["sid"]}&sig=#{sig}&v=3.0") p JSON.parse(body)