VKontakte डेस्कटॉप अनुप्रयोग का प्राधिकरण

सोशल नेटवर्क VKontakte कुछ अजीब तरीके से अपने उपयोगकर्ताओं की सुरक्षा का ख्याल रखता है, जो एसएसएल प्रदान किए बिना ब्राउज़र से अलग तरीके से प्राधिकरण के लिए सभी प्रकार की बाधाओं को उत्पन्न करता है। निम्नलिखित एक रूबी स्क्रिप्ट है जो आपको ई-मेल और पासवर्ड के माध्यम से डेस्कटॉप एप्लिकेशन को जल्दी से अपने खाते से कनेक्ट करने की अनुमति देती है और फिर एपीआई का उपयोग करती है।



यह स्क्रिप्ट "औद्योगिक" उपयोग के लिए अभिप्रेत नहीं है और प्राधिकरण विधि आधिकारिक नहीं है और यह बदल सकती है।



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 "सरल प्राधिकरण" को शीर्षक से हटा दिया गया है, क्योंकि यह अपेक्षाकृत सरल है, लेकिन इसे तुच्छ कहना मुश्किल है।



All Articles