VK рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдЬрд╛рдХреНрд╕ рд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рд╕рд░рд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рд╕рд╛рдЗрдЯ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ VKontakte API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдкрд░, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдУрдкрди рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдФрд░ рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд╕реЗ, PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдзрд┐рдХреГрдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рд╡реАрдХреЗ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдпрд╣ рдХрд╛рд░реНрдп рдЗрддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ VKontakte рдХреЗ рдкрд╛рд╕ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдкреНрд░рд▓реЗрдЦрди рд╣реИ, рд╕рд╛рде рд╣реА, Vontontakte API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдЗрдЯреЗрдВ рд╣реИрдВред

рдЪрд▓реЛ рджреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд┐рддреНрд░ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд╕рд░реНрд╡рд░ рдПрдкреАрдЖрдИ рдФрд░ рджреВрд╕рд░рд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред
рдЙрд╕реА рд╕рдордп, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╣рдо рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдкреЛрдВ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред

рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЦреБрдж рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд╛рд░реНрдп:
  1. рд╣рдо рдкреГрд╖реНрда рдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдХреЗрд╡рд▓ рдЕрдЬрд╛рдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рднреА рд╕рдВрдЪрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
  2. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрднрд╡ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЫ "рдкреАрдЫреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ" рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреА рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╕рдм рдХреБрдЫ рдпрдерд╛рд╕рдВрднрд╡ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд HTML рдХреЛрдб рд╣реИ
<!doctype html> <html> <head> <meta charset="utf-8"> <title>  </title> <link rel="stylesheet" href="style.css" /> <script src="script.js"></script> </head> <body> <section id="serverApi"> API</section> <section id="clientApi"> API</section> </body> </html> 

рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд╕рд╛рде рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред
рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ window.vkAsyncInit рдИрд╡реЗрдВрдЯ рдкрд░ Openapi.js рдХреЛ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ VK.init({appid: YOUR_APP_ID}) рдХреЛ window.vkAsyncInit рд▓рд┐рдП window.vkAsyncInit , рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЖрдк VK.Auth.login(authInfo, YOUR_APP_PERMISSIONS) рдлрд╝рдВрдХреНрд╢рди VK.Auth.login(authInfo, YOUR_APP_PERMISSIONS) , VK.Auth.login(authInfo, YOUR_APP_PERMISSIONS) рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, VK.Auth.login(authInfo, YOUR_APP_PERMISSIONS) рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдгред

рдУрдкрди рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдЕрдиреБрд░реЛрдз
 var vk = { data: {}, api: "//vk.com/js/api/openapi.js", appID: YOUR_APP_ID, appPermissions: YOUR_APP_PERMISSIONS, init: function(){ $.js(vk.api); window.vkAsyncInit = function(){ VK.init({apiId: vk.appID}); load(); } function load(){ VK.Auth.login(authInfo, vk.appPermissions); function authInfo(response){ if(response.session){ //   vk.data.user = response.session.user; vk.getFriends(); }else alert("  !"); } } }, getFriends: function(){ VK.Api.call('friends.get', {fields: ['uid', 'first_name', 'last_name'], order: 'name'}, function(r){ if(r.response){ r = r.response; var ol = $('#clientApi').add('ol'); for(var i = 0; i < r.length; ++i){ var li = ol.add('li').html(r[i].first_name+' '+r[i].last_name+' ('+r[i].uid+')') } }else alert("     "); }) } } $.ready(vk.init); 

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХрд╛рд░реНрдп $ jQuery рдирд╣реАрдВ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдпрд╛ рд╡рд╣ рдХрд╛рд░реНрдп рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдирдХрд╛ рд╕реНрд╡рддрдВрддреНрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╕рднреА jQuery рдХреЛрдб рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рддрд░рд╣ред

рдЗрд╕ рдкреНрд░рдХрд╛рд░,
$.ready(function) - рдпрд╣ DOMContentLoaded рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рд╣реИ;
$.js(text) - рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ;
$(element) - DOM рдиреЛрдб element рдкрд░ рдПрдХ рд░реИрдкрд░ рджреЗрддрд╛ рд╣реИ;
$(element).add(node) - element рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдиреЛрдб node рдмрдЪреНрдЪрд╛ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рджреЗрддрд╛ рд╣реИ;
$(element).html(string) - $(element).html(string) element.innerHTML = string рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдгред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдпрд╣ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:
рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ VKontakte API рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЖрд░рдВрдн рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, VK.Auth.login() рд╡рд┐рдзрд┐ рдХреЛ VK.Auth.login() , рдЬреЛ рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдмреИрдирд░ рдХрдЯрд░ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ "рдмреНрд▓реЙрдХ" рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбреЗрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕рдХреА рд╕рд╣рдорддрд┐ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╕рд╣рдорддрд┐ рдпрд╛ рдЕрд╕рд╣рдорддрд┐ рдХреЗ рдмрд╛рдж authInfo рдлрд╝рдВрдХреНрд╢рди authInfo рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЛрд╕реНрддреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдХреЛ рдкреВрд░реНрдг рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рд╡рд┐рдВрдбреЛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рд╕рд╛рд░реНрдердХ рд╣реИред

рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдмрд╣реБрдд рдЕрдзрд┐рдХ рдордЬреЗрджрд╛рд░ рд╣реИред рддреГрддреАрдп-рдкрдХреНрд╖ рд╕рд╛рдЗрдЯ рд╕реЗ VKontakte API рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рддрдВрддреНрд░ OAuth 2.0 рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
  1. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рдкреГрд╖реНрда рджрд┐рдЦрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛;
  2. рдЖрд╡реЗрджрди рдХреЗ рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдВрд╡рд╛рдж рдХреЛ рдЦреЛрд▓рдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ REDIRECT_URI рдкрддреЗ рдкрд░ рдкреБрдирдГ рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкрд╣реБрдВрдЪ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЛрдб рдЬреАрдИрдЯреА рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛;
  3. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЛрдб рдФрд░ рдЧреБрдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкрддреЗ рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдмрджрд▓реЗ рдореЗрдВ рд╣рдореЗрдВ рдПрдХреНрд╕реЗрд╕ рдХреБрдВрдЬреА access_token рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рджреВрд╕рд░рд╛ рдмрд┐рдВрджреБ, рдЕрд░реНрдерд╛рддреН, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди, рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ IE рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХрд╣реАрдВ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реА рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдФрд░ рдЬреИрд╕реЗ рд╣реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рд┐рдХреГрдд рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдмрд╕ рдкреНрд░рддрд┐рд╖реНрдард┐рдд рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рд╕рдВрдЧреАрдд рд╕реЗрд╡рд╛ рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рдПрдХ рд╕рдВрдЧреАрдд рд╕реЗрд╡рд╛ рдкрд░ рд╡реАрдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рд╕рдЪ рд╣реИ, рдЬреЛ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкреГрд╖реНрда рдкрд░ "рд▓реЙрдЧрд┐рди рд╕рдХреНрд╕реЗрд╕" рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдм рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдмрд╕ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рдЖрдкрдиреЗ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рд╡рд┐рд╖рдп рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЪрд┐рддреНрд░ рдореЗрдВ рджреЗрдЦрд╛ рдерд╛ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрджреНрдШрд╛рдЯрди рдлрд┐рд░ рд╕реЗ рдЗрд╕ рдЦрддрд░реЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рдпрд╣ рдЕрд╡рд░реБрджреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЕрдЧрд░ рд╣рдо рдЙрд╕ рд▓рд┐рдВрдХ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдВрдбреЛ рдХреЛ рдЦреЛрд▓рдирд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЦреЛрд▓рдиреЗ рдХреЗ рдХрдИ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рдЕрд╡рд░реБрджреНрдз рди рд╣реЛред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдЪреНрдЫрд╛ рдкреБрд░рд╛рдирд╛ iframe рдЯреИрдЧ рдЕрднреА рднреА HTML рдорд╛рдирдХ рдХреЗ рд░реИрдВрдХ рдореЗрдВ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪреВрдВрдХрд┐ рд╣рдореЗрдВ рдкрддрд╛ рд╣реИ, рд╣рдо рдлреНрд░реЗрдо рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рд▓рд┐рдВрдХ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рджреВрд╕рд░реЗ, рдпрджрд┐ рдХреЛрдИ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░реЗ рдбреЛрдореЗрди рд╕реЗ рдкреЗрдЬ рдлреНрд░реЗрдо рдореЗрдВ рдЦреБрд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдлреНрд░реЗрдо рд╕реЗ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░реАрдм рдлреНрд░реЗрдо рдлрд╝рдВрдХреНрд╢рди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА access_token рд╣реЛрдЧрд╛ , рдЬрд┐рд╕реЗ рд╣рдо рд╕рддреНрд░ рдореЗрдВ рд╕рд╣реЗрдЬреЗрдВрдЧреЗ рдФрд░ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ, рд╣рдо рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдкреГрд╖реНрда рдХрд╛ рдкреБрдирдГ рд▓реЛрдб рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рд╣рдорд╛рд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рддреАрд╕рд░рд╛, рдпрджрд┐ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдПрдХреНрд╕реЗрд╕ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреГрд╖реНрда рдХреЛ рдЦреЛрд▓рд╛ рд╣реИ, рддреЛ рд╣рдорд╛рд░реЗ рдбреЛрдореЗрди рд╕реЗ рдкреГрд╖реНрда рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реИ, рдЬреЛ рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдореБрдЦреНрдп рдПрдХ рдХреЗ рдмрдЬрд╛рдп рдЦреЛрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рдПрдХ рд░рд┐рдмреВрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдмрд▓рд┐рджрд╛рди рд╣реИ рдЬрд┐рддрдирд╛ рдХрд┐ рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреГрд╖реНрда рд╕реЗ рдЖрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдореБрдЦреНрдп рдкреГрд╖реНрда рдкрд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рджреВрд╕рд░реА рдмрд╛рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд░рд┐рдмреВрдЯ рдХрд┐рдП рдмрд┐рдирд╛ рд╣реЛрдЧрд╛ред

PHP рдХреЗ рд▓рд┐рдП OAuth VK API рдПрдХреНрд╕реЗрд╕ рдХреНрд▓рд╛рд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЖрд╕рд╛рдиреА рд╕реЗ рдЬреАрдердм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдореИрдВрдиреЗ (PHP> 5.4) рдХрд┐рдпрд╛ рдерд╛ред
(рдпрд╣ рджреБрд░реНрдШрдЯрдирд╛ рд╕реЗ рдХрд╛рдлреА рд╣рдж рддрдХ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж )

рдЕрдм рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред
рд╣рдо рдПрдХ рд╕рд░реНрд╡рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдкреЗрдЬ рдХреЗ AJAX рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдЧреА
 <?php require_once('vk.php'); session_start(); function getPostStr($data, $default = false){ //   -  $_POST[$data] if(!isset($_POST[$data])) return $default; $data = $_POST[$data]; $data = htmlspecialchars(strip_tags(trim($data))); return ($data != "" ? $data : $default); } function error($code, $text, $params = Array()){ $result = Array('error' => Array('code' => $code, 'message' => $text)); if(count($params) > 0) foreach($params as $key => $value) $result['error'][$key] = $value; die(json_encode($result)); } $vkConf = Array( 'appID' => YOUR_APP_ID, 'apiSecret' => YOUR_API_SECRET, 'callbackUrl' => YOUR_DOMAIN . '/auth.php', 'apiSettings' => YOUR_APP_PERMISSIONS ); $vk = (isset($_SESSION['accessToken'])) ? new VK($vkConf['appID'], $vkConf['apiSecret'], $_SESSION['accessToken']) : null; function userIn($vk, $vkConf){ //   unset($_SESSION['accessToken']); $vk = new VK($vkConf['appID'], $vkConf['apiSecret']); $authorizeUrl = $vk -> getAuthorizeURL($vkConf['apiSettings'], $vkConf['callbackUrl']); error(-1, "  !", Array('url' => $authorizeUrl)); } function getFriends($fields, $order, $vk){ //     $userFriends = $vk -> api('friends.get', array('fields' => $fields, 'order' => $order)); $result = Array(); foreach($userFriends['response'] as $key => $value){ $result[] = Array('firstName' => $value['first_name'], 'lastName' => $value['last_name'], 'uid' => $value['uid']); } echo json_encode($result); } $method = strtolower($api -> getStr("method")); switch($method){ case "user.in" : userIn($vk, $vkConf); break; case "friends.get" : getFriends(getPostStr("fields"), getPostStr("order"), $vk); break; default: Api::error(0, "   Api"); } ?> 

рд╣рдо POST рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреЗрдЬ рдкрд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ method рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдЙрд╕ method рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо user.in рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз user.in рдЬрдм рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдкреГрд╖реНрда рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рд░реНрд╡рд░ -1 рддреНрд░реБрдЯрд┐ рдХреЛрдб рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреЗрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдкрдХрдбрд╝ рд▓реЗрдВрдЧреЗ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░реЗрдВрдЧреЗред
рдЙрд╕реА рд╕рдордп, рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде, рдкреГрд╖реНрда рдХрд╛ URL рдЬрд┐рд╕ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рд╣реЛрдЧреА, рд╡рд╣ рднреА рдЖрдПрдЧрд╛, рдФрд░ рд╣рдо рдЗрд╕реЗ рдлреНрд░реЗрдо рдореЗрдВ рдЦреЛрд▓реЗрдВрдЧреЗред
рд╣рдо рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ AJAX рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВ
 function Api(method, params, callback){ if(!params) params = {}; $.ajax($.copy({method: method}, params), 'server.php', function(r){ if(r.error){ switch(r.error.code){ case -1: { // notAuth var div = $(document.body).add('div').id('authPopup'), iframe = div.add('iframe').attr({src: r.error.url}); div.add('p').html('                 ,   -          .      ,      ,   ').add('a').attr({href: r.error.url}).html(' '); $.splash.open({onclose:function(){ div.remove() }}); } break; default: alert(r.error.code+': '+r.error.message); } }else if(callback) callback(r); }); } $.ready(function(){ Api('user.in'); }); 

рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ $ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛:
$.copy(object1, object2) - object1 рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ object2 рдХреА object2 ;
$.ajax(text, addr, callback) - text рд╕рдВрджреЗрд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ POST рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ JSON рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ callback рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреА рд╣реИ;
$(element).id(elemID) - element.id = elemID рд▓рд┐рдП рдПрдХ рдЖрд╡рд░рдгред element.id = elemID ;
$(element).attr(object) - рддрддреНрд╡ element рдХрд╛ рдЯреИрдЧ рдЧреБрдг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред object рдХреБрдВрдЬреА - рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд╛рдо, рдореБрдЦреНрдп рдорд╛рди рд╡рд┐рд╢реЗрд╖рддрд╛ рдорд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ;
$(element).remove() - element рдХреЛ рд╣рдЯрд╛рддрд╛ element ;
$.splash.open(params) - рдкрд╛рд░рднрд╛рд╕реА рдЕрдВрдзреЗрд░реЗ рдмреНрд▓реЙрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИред params.onclose рдкреИрд░рд╛рдореАрдЯрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬрд┐рд╕реЗ $.splash.close() рд╕рдордп рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рдЕрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡рд┐рдВрдбреЛ рдФрд░ рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреБрд╖реНрдЯрд┐ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд░реЗрдо рдкреЙрдк рдЕрдк рд╣реЛрддрд╛ рд╣реИред рдпрд╛, рдлрд╝реНрд░реЗрдо рдореЗрдВ рдПрдХ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рд╡рд┐рдВрдбреЛ рдХреЗ рдмрдЬрд╛рдп, рд╣рдо рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрд╡реЗрджрди рдХреА рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдХреЗрд╡рд▓ рдЙрд╕ рдкреГрд╖реНрда рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реАрдХреЗ рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреГрд╖реНрда
 <?php require_once('vk.php'); session_start(); $vkConf = Array( 'appID' => YOUR_APP_ID, 'apiSecret' => YOUR_API_SECRET, 'callbackUrl' => YOUR_DOMAIN . '/auth.php', ); if(isset($_REQUEST['code'])){ $vk = new VK($vkConf['appID'], $vkConf['apiSecret']); $accessToken = $vk -> getAccessToken($_REQUEST['code'], $vkConf['callbackUrl']); $_SESSION['accessToken'] = $accessToken['access_token']; }else die('Auth failed'); ?> <!doctype html> <html> <head> <meta charset="utf-8" /> <title>     </title> <script> $.ready(function(){ if(window.top){ window.top.vk.getFriends(); window.top.$.splash.close(); } }) </script> </head> <body> <h4> !</h4> <p>   <a href="YOUR_DOMAIN">  </a>,   </p> </body> </html> 

рдпрд╣рд╛рдВ рд╣рдо рд╕рд┐рд░реНрдл access_token рдХреЛ рд╕рддреНрд░ рдЪрд░ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг Ajax рдЕрдиреБрд░реЛрдз рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдпрд╣ рдкреГрд╖реНрда рдХрд┐рд╕реА рдлрд╝реНрд░реЗрдо рдореЗрдВ рдЦреБрд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ, рдЬреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдорд┐рддреНрд░реЛрдВ рдХреА рд╡реАрдХреЗ рд╕реВрдЪреА рдФрд░ рдлреНрд░реЗрдо рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреА рд╣реИред

рдпрд╣рд╛рдВ рд╡реАрдХреЗ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд┐рдиреАрдд рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛ рдРрд╕рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ
рдкрд░рд┐рдгрд╛рдо

рдПрдХ рд╣реЛрдорд╡рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрдЧрд░ рдпрд╣ рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдЦреБрд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдкреБрд╖реНрдЯрд┐рдХрд░рдг рдкреЗрдЬ userIn() рд╡рд┐рдзрд┐ рдореЗрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ access_token рд╕рддреНрд░ рдореЗрдВ рд╣реИ, рддреЛ YOUR_DOMAIN рдкреГрд╖реНрда рд╕реЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдпрджрд┐ рдЗрд╕рдХреА рд╡реИрдзрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдХреБрдВрдЬреА рдорд╛рдиреНрдп рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред ред

Source: https://habr.com/ru/post/In188102/


All Articles