यह स्क्रिप्ट "औद्योगिक" उपयोग के लिए अभिप्रेत नहीं है और प्राधिकरण विधि आधिकारिक नहीं है और यह बदल सकती है।
require 'net/http' # ( ) app_id = '1234567' # ID , email = 'mail@example.com' password = 'qwerty' app_rights = 16383 # (16383 - ) # resp = Net::HTTP.post_form(URI.parse('http://vk.com/login.php'), {'m' => '1', 'email' => email, 'pass' => password}) cookies = resp.response['set-cookie'] remixsid = cookies.split('remixsid=')[1].split(';')[0].split(',')[0] # http://vk.com header = { "Cookie" => 'remixsid=' + remixsid } conn = Net::HTTP.new('vk.com', 80) # resp = conn.get('http://vk.com/login.php?app=' + app_id + '&layout=popup&type=browser&settings=32767', header) auth_hash = resp.body.split('var auth_hash = \'')[1].split('\';')[0] rights_hash = resp.body.split('var app_settings_hash = \'')[1].split('\';')[0] # req = '' mask = 1 14.times do if (app_rights & mask == 0) req += ('&app_settings_' + mask.to_s + '=0') else req += ('&app_settings_' + mask.to_s + '=1') end mask *= 2 end resp = conn.get('http://vk.com/apps.php?act=a_save_settings&addMember=1' + req + '&hash=' + rights_hash + '&id=' + app_id, header) # resp = conn.get('http://vk.com/login.php?act=a_auth&app=' + app_id + '&hash=' + auth_hash + '&permanent=1', header) auth_json = resp.body # API JSON puts auth_json # -
परिणामस्वरूप, हमें निम्नलिखित फॉर्म का उत्तर मिलता है:
{"mid":1000xxxxx,"sid":"xxxx6ed0xxxx2516xxxx49eacd0ec30f9961c01d30d15c3152e459xxxx", "secret":"335xxxxxxx","expire":0}
यह व्यक्तिगत उद्देश्यों के लिए एक शाम लिखा गया था और यह नहीं जानता कि खातों के साथ कैसे काम करना है, जो मोबाइल फोन से बंधे नहीं हैं, क्योंकि कैप्चा की आवश्यकता है। और संभावित त्रुटियों को भी नहीं संभालता है।
आप इसे अपनी आवश्यकताओं के अनुसार संशोधित कर सकते हैं, क्योंकि सिद्धांत स्पष्ट है।
एपीआई के साथ कैसे काम करें, यहां विस्तार से वर्णित है: vk.com/developers.php
आवेदन के अधिकारों के बारे में वहां लिखा है। प्राधिकरण फॉर्म प्राप्त होने पर, "सेटिंग = 32767" इंगित किया गया था, अर्थात 2 ^ n-1 ऐसा है कि सभी अधिकार स्पष्ट रूप से प्राप्त नहीं किए जा सकते हैं। आज, 16383 अधिकतम अधिकारों से मेल खाता है, जो भविष्य में बदल सकता है।
PS "सरल प्राधिकरण" को शीर्षक से हटा दिया गया है, क्योंकि यह अपेक्षाकृत सरल है, लेकिन इसे तुच्छ कहना मुश्किल है।