Advertisement
stuppid_bot

Untitled

Jan 31st, 2014
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. vkUser = {};
  2. APP_CLIENT_ID = '2692017';
  3. APP_CLIENT_SECRET = 'rqIkXYBauPjqE2EVxB2j';
  4. APP_SCOPE = 'notify,friends,photos,audio,video,docs,notes,wall,groups,messages,notifications,activity,status,pages,stats';
  5. APP_API_VERSION = '5.3';
  6.  
  7. function showCaptcha(url, sid, cb, params) {
  8.     var img = g('captcha-image');
  9.     img.src = url;
  10.     img.onload = function () {
  11.         var wrapper = g('captcha-wrapper');
  12.         var field = g('captcha-key');
  13.         wrapper.classList.remove('hidden');
  14.         field.focus();
  15.         g('captcha-form').onsubmit = function () {
  16.             params.captcha_key = val(field);
  17.             params.captcha_sid = sid;
  18.             wrapper.classList.add('hidden');
  19.             this.reset();
  20.             cb(params);
  21.             return false;
  22.         }
  23.     }
  24. }
  25.  
  26. function rawApi(method, cb, data) {
  27.     if (isObject(data)) {
  28.         data = QueryString.stringify(data);
  29.     }
  30.     var xhr = new CrossXHR;
  31.     xhr.open('POST', 'https://api.vk.com/method/' + method);
  32.     xhr.onreadystatechange = function() {
  33.         if (xhr.readyState == 4) {
  34.             if (xhr.status == 200) {
  35.                 cb();
  36.             }
  37.         }
  38.     }
  39.     xhr.send(data);
  40. }
  41.  
  42. function api(method, cb, data) {
  43.     data = data || {};
  44.     if (data instanceof FormData) {
  45.         data.append('v', APP_API_VERSION);
  46.         data.append('access_token', vkUser.access_token);
  47.     }
  48.     else {
  49.         data.v = APP_API_VERSION;
  50.         data.access_token = vkUser.access_token;
  51.     }
  52. }
  53.  
  54. function login(params) {
  55.     console.log(params);
  56.     var xhr = new XMLHttpRequest;
  57.     xhr.open('GET', 'ajax/vk_login.php?' + QueryString.stringify(params)); 
  58.     xhr.onload = function () {
  59.         if (xhr.status == 200) {
  60.             r = JSON.parse(xhr.responseText);
  61.             console.log(r);
  62.             if (r.error) {
  63.                 if (r.error == 'need_captcha') {
  64.                     showCaptcha(r.captcha_img, r.captcha_sid, login, params);
  65.                 }
  66.                 else {
  67.                     alert('Error ' + r.error + ': ' + r.error_description);
  68.                 }
  69.             }  
  70.             else {
  71.                 vkUser.access_token = r.access_token;
  72.                 vkUser.user_id = r.user_id;
  73.                 // тут получаем еще данные
  74.             }
  75.         }
  76.     }
  77.     xhr.send();
  78. }
  79.  
  80. addEventListener('load', function () {
  81.     if (localStorage.vkUser) {
  82.         vkUser = JSON.parse(localStorage.vkUser);
  83.         g('main-screen').classList.remove('hidden');
  84.         // обновить информацию об пользователе
  85.     }
  86.     else {
  87.         g('login-screen').classList.remove('hidden');
  88.     }
  89.     g('login-form').onsubmit = function () {
  90.         var params = {
  91.             username: val(this.login),
  92.             password: val(this.password),
  93.             grant_type: 'password',
  94.             client_id: APP_CLIENT_ID,
  95.             client_secret: APP_CLIENT_SECRET,
  96.             scope: APP_SCOPE,
  97.             v: APP_API_VERSION
  98.         };
  99.         login(params);
  100.         return false;
  101.     }
  102. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement