Jeton de primire. Cum să obțineți access_token pentru aplicația VKontakte

Ce este un token VK? În zilele noastre, tehnologia se dezvoltă într-un ritm foarte rapid. În același timp, rețelele de socializare capătă un avânt enorm. A nu avea un cont pe cel puțin o rețea de socializare nu mai este posibil pentru fiecare persoană, cel puțin în rândul tinerilor și fetelor. În fiecare zi, ele sunt umplute cu terabytes de fotografii, videoclipuri și chiar o unitate primitivă de cunoaștere a textului.

Ce este un token VK

Dar, din păcate, puțini oameni știu despre „trucurile” speciale ale acestei resurse. Unii oameni chiar petrec puțin timp acolo, în timp ce alții pur și simplu nu au nevoie de ele.
Unul dintre aceste lucruri notabile este așa-numitul „token” din această rețea socială; puțini utilizatori știu ce este un token VK.

Ce este un token de acces pe VKontakte.

Jetonul VK este sfoară lungă, formată din simboluri: cifre și litere ale alfabetului latin. S-ar părea că nu are nimic special la el, dar oferă mari oportunități utilizatorului care l-a activat.

De exemplu, scrieți anumite mesaje unei anumite persoane, afișează eternul online al paginii tale, de parcă ai fi mereu pe site. Ultima varianta este un mare plus, pentru ca recent a fost eliminata invizibilitatea din Contact si cu ajutorul token-ului nimeni nu va putea intelege exact cand ai fost online, deoarece este afisat constant. Setați o stare, scrieți pe perete etc.

Cum să obțineți un token VKontakte.

Procesul de obținere a unui token se realizează prin intermediul aplicației. Trebuie să îl creați singur; acest lucru se poate face urmând linkul vk.com/apps?act=manage și făcând clic pe butonul de creare. Putem pune orice vrei în titlu. Alegem chiar primul tip. Apoi, trecem prin confirmare folosind un telefon mobil.

Apare pagina aplicației dvs., selectați „Setări” și va apărea un set lung de stele și un ID deasupra acestuia.

https://oauth.vk.com/authorize?client_id=5563738&scope=notify,fotografii,prieteni,audio,video,note,pagini,documente,stare,întrebări,oferte,perete,grupuri,mesaje,notificări,statistici,reclame, offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Cum să aflați jetonul în contact.

După ce ați finalizat toate cele de mai sus, va apărea o fereastră în care sunteți de acord cu totul și faceți clic pe butonul „Permite”.

Pare dificil, dar de fapt oricine poate obține un token pe VK, o altă întrebare este de ce? 99% dintre utilizatorii VK nu au deloc nevoie de cunoștințele sale. De asemenea, ne grăbim să vă avertizăm să nu dați sau să introduceți token-ul pentru resurse dubioase, altfel pagina dvs. poate ajunge în mâinile unui atacator. De exemplu, vă pot abona la diferite grupuri sau comunități fără știrea dvs., vă pot oferi un statut îndoielnic sau vă pot publica un mesaj pe perete în numele dvs.

Din ce în ce mai des apar pe piață produse software pentru VKontakte sub formă de servicii online, mobil sau aplicații informaticeși chiar scripturi care necesită autorizarea contului prin access_token. În unele cazuri, aceste programe sau servicii în sine fac posibilă obținerea cheii de acces necesare pentru autorizare în câteva clicuri. Dar dacă ați descărcat scriptul, dar nu aveți cheia access_token pentru a-l folosi?

Cum să obțineți access_token?
Vom lua în considerare metoda de autorizare în rețea socială VKontakte printr-o legătură directă prin API-ul VKontakte (bazat pe protocolul OAuth), apelat Fluxul implicit. Autorizarea folosind această metodă se realizează prin aplicația VKontakte, specificată ca ID. Acesta este cel mai mult metoda sigura autorizare. Pe Internet puteți găsi un numar mare de articole ca acesta despre obținerea access_token prin diverse aplicații suspecte. Vom lua alte căi – vom analiza metodele de autorizare prin intermediul aplicației proprii sau cerere oficială In contact cu.

Modul de a obține un jeton este să treci prin link special, care conține ID-ul unei aplicații VKontakte, cum ar fi:

Citat

200?"200px":""+(this.scrollHeight+5)+"px");">https://oauth.vk.com/authorize?client_id= APPLICATION_ID&scope=notify,fotografii,prieteni,audio,video,note,pagini,documente,stare,întrebări,oferte,perete,grupuri,mesaje,notificări,statistici,anunţuri,offline&redirect_uri=http://api.vk.com/blank. html&display=page&response_type=token


Întrebarea este de unde să obțineți asta APPLICATION_ID. După cum am promis, ne vom uita la 2 metode:
  • Primirea unui token prin propria aplicație.

    Această metodă de obținere a unui token presupune că aveți propria dvs. aplicație. În acest caz, sări peste câțiva pași. Vom pleca de la faptul că nu aveți propria aplicație, ceea ce înseamnă că trebuie să o creați. Pentru a face acest lucru, trebuie să accesați pagina pentru gestionarea aplicațiilor dvs. folosind linkul vk.com/apps?act=manageși faceți clic pe " Creați o aplicație».


    Introduceți un nume pentru viitoarea aplicație, de exemplu, „ Se obține access_token", asigurați-vă că " Aplicație autonomă" și faceți clic pe butonul " Conectați aplicația».


    În continuare, va trebui să aprobi cererea primind un cod de confirmare pe telefon și introducându-l într-un câmp special. De asemenea, în timpul procesului de aprobare a cererii, vă puteți conecta dispozitiv mobilîn contul tău VKontakte. Pentru a face acest lucru, faceți clic pe butonul " Conectați dispozitivul" În caz contrar, faceți clic pe linkul " Confirmați prin SMS» fără a conecta dispozitivul la pagină.


    După confirmare, veți vedea o pagină cu informații despre aplicația creată. În meniul din stânga, faceți clic pe elementul „ Setări" Aici este așa-numitul tău client_id, adică ID-ul aplicației tale VKontakte.


    Acest ID trebuie copiat și lipit în linkul nostru APPLICATION_ID. Ar trebui să arate cam așa:

    200?"200px":""+(this.scrollHeight+5)+"px");">https://oauth.vk.com/authorize?client_id=5563738&scope=notify,photos,friends,audio,video, note, pagini, documente, stare, întrebări, oferte, perete, grupuri, mesaje, notificări, statistici, anunțuri, offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token


    5563738 – acesta este ID-ul aplicației noastre. Veți avea un număr similar.
  • Primirea unui token prin aplicația oficială VKontakte.

    Această metodă este absolut identică cu cea anterioară, cu excepția faptului că nu vă creați propria aplicație, ci folosiți o aplicație oficială VKontakte deja creată, în care puteți avea încredere.

    Ca exemplu, vom lua aplicația VKontakte pentru Android. ID-ul său este următorul: 2890984 . Drept urmare, înlocuindu-l cu exilul, ea va accepta următoarea vedere:

    200?"200px":""+(this.scrollHeight+5)+"px");">https://oauth.vk.com/authorize?client_id=2890984&scope=notify,photos,friends,audio,video, note, pagini, documente, stare, întrebări, oferte, perete, grupuri, mesaje, notificări, statistici, anunțuri, offline&redirect_uri=http://api.vk.com/blank.html&display=page&response_type=token

Aceasta încheie partea referitoare la identificatorul aplicației (ID) utilizat pentru autorizare. Dar mai sunt câteva puncte de clarificat.

Nu recomandăm cu insistență:
  • Furnizați access_token-ul primit terților.
  • Treceți autorizația aplicații dubioase(pe lângă cel propriu sau oficial).
De asemenea, vă recomandăm cu căldură:
  • După ce utilizați access_token-ul generat, ștergeți-l. Dacă este necesar, puteți genera întotdeauna unul nou.
  • Completează totul sesiuni activeîn setările de securitate ale contului tău VKontakte. Acest cale rapidă dezactivați totul taste active acces (access_token).
Și acum, după ce ați citit informațiile de mai sus, puteți începe să creați aplicație proprie pentru a genera access_token-ul dvs. sau urmați linkul pentru a genera un access_token prin aplicația VKontakte pentru Android folosind butonul de mai jos:

Totuși, acest articol ia în considerare o aplicație desktop în Java ca exemplu principii generale iar schema va fi similară pentru orice altă limbă.

Cum apare autorizarea?

Autorizarea pe VKontakte nu este diferită de orice altă autorizare prin intermediul unui server terță parte. Acest proces a fost descris perfect de un utilizator StackOverflow qnub:

  1. Pe serviciu (în în acest caz, VK) trebuie să înregistrați aplicația și să obțineți o cheie API.
  2. După aceasta, aplicația (site-ul) poate solicita datele personale ale utilizatorului de la un serviciu terță parte prin același API, pentru care:
    • redirecționează utilizatorul (browserul utilizatorului trimițându-i un răspuns HTTP de redirecționare 302) prin link special generat la un serviciu care furnizează un API;
    • utilizatorul va efectua unele acțiuni acolo, probabil se va autentifica și va permite accesul la date.
  3. La finalizarea acțiunilor, utilizatorul va fi redirecționat serviciu terț folosind aceeași redirecționare 302 către adresa URL transmisă în parametri link special generat.

Primul pas. Înregistrați-vă aplicația și obțineți o cheie

Acest pas este cel mai simplu. Trebuie să accesați pagina VK pentru dezvoltatori: https://vk.com/dev- și faceți clic pe butonul „Creați aplicație”. Indicăm tipul ca „Aplicație autonomă”; numele, desigur, este arbitrar. După aceasta, în secțiunea „Aplicațiile mele”(ce crezi?) va apărea aplicația ta. Simțiți-vă liber să faceți clic pe „editați”, apoi accesați secțiunea „Setări” - acolo, în prima linie, veți vedea inscripția „ID aplicație: 1234567 " Aceste numere sunt tot ce trebuie să vă amintiți pentru a vă conecta.

Rețineți că nu are rost să ascundeți ID-ul aplicației - acesta este afișat public, de exemplu, atunci când postați un mesaj pe perete prin această aplicație. Nici jetoanele și nici alte informații nu pot fi furate folosind un ID. În general, puteți chiar să utilizați ID-ul aplicației mele (dacă trebuie să scrieți scenariu mic pentru mine).

Pasul doi. Generarea unei legături speciale

În continuare, trebuie să direcționați utilizatorul către o adresă special generată (mențiunile acesteia sunt evidențiate cu caractere aldine în prima secțiune a articolului), unde acesta va confirma că dorește să permită aplicației dumneavoastră să efectueze unele acțiuni cu contul său. Cum se formează această legătură?

Acest proces este descris în detaliu în documentație. Cu toate acestea, dacă ați apelat la acest articol, presupun că nu ați avut suficiente informații în documentație și, prin urmare, voi repeta totul în propriile mele cuvinte. Linkul arată astfel: gazdă?parametri. Parametrii iau forma mai multor perechi cheie=valoare separate prin simboluri &.

Gazda rămâne întotdeauna aceeași: https://oauth.vk.com/authorize. Setul de parametri este, de asemenea, neschimbat:

  • client_id. Aici merită să indicați aceleași numere pe care le-am obținut în primul pas.
  • redirect_uri. Adresa către care va fi redirecționat utilizatorul. Pentru aplicațiile autonome, acesta este doar https://oauth.vk.com/blank.html.
  • afişa. Acest parametru determină modul în care va fi afișată pagina de conectare. Există trei opțiuni disponibile: pagină, pop-up și mobil. Dacă nu ești sigur, folosește pagina .
  • domeniul de aplicare. În acest parametru, ar trebui să enumerați parametrii de acces de care aveți nevoie, separați prin virgule. Lista plina parametri disponibili dat pe pagina corespunzătoare documentație. Vă rugăm să rețineți că nu trebuie să specificați absolut nimic și pur și simplu nu scrieți acest parametru. Pentru a afla ce opțiuni de acces aveți nevoie, uitați-vă la documentarea metodei pe care urmează să-l folosești.
  • tip_răspuns. Specificăm jetonul și mergem mai departe.
  • v. Versiunea API. Actual - 5.59 .

https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=http://example.com/callback&scope=friends&response_type=token&v=5.59

Pasul trei. Ce urmeaza?

http://REDIRECT_URI#access_token= JETON 3&expires_in= TIMP&user_id= ID

Suntem interesati de JETON. Cum să direcționați utilizatorul către o pagină dintr-o aplicație Java și cum să obțineți adresa paginii către care VK îl va redirecționa (pentru a extrage un token din aceasta)? Există două moduri.

Dacă decideți să mergeți pe această rută, atunci pur și simplu deschideți browserul implicit al sistemului cu linkul pe care l-ați primit mai sus și spuneți cumva utilizatorului că ar trebui să copieze jetonul de pe adresa URL și să-l lipiți într-un câmp. Evident, această metodă are UX teribil, dar poate fi implementată rapid și ușor. Este destul de potrivit dacă scrieți o aplicație pentru dvs. - pentru a descărca muzică sau a primi notificări. Se implementează după cum urmează:

Public String askToken(String link) aruncă IOException, URISyntaxException( //Deschide linkul în browser implicit Desktop.getDesktop().browse(new URI(link)); //Solicită utilizatorului să introducă simbolul din browser manual return JOptionPane.showInputDialog(" Vă rugăm să introduceți access_token param din browser: "); )

Burghez, prin componente web

Dacă decideți să mergeți pe această cale, va trebui să utilizați o bibliotecă GUI terță parte (sau cel puțin JavaFX) care are propria sa componentă de browser. Programul dvs. va avea putere deplină asupra unui astfel de browser și veți putea recupera adresa către care VK v-a redirecționat, software. În JavaFX, acest lucru poate fi implementat după cum urmează:

Import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.scene.Scene; import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; import javafx.stage.Stage; public class Main extinde Aplicația (public final static String REDIRECT_URL = "https://oauth.vk.com/blank.html"; public static final String VK_AUTH_URL = ""; //A FACE!!! public static String tokenUrl; public static void main(String args)( System.out.println(Main.getTokenUrl()); ) public static String getTokenUrl())( lansare(Main.class); return tokenUrl; ) @Override public void start(Stage primaryStage ) aruncă Excepție ( vizualizare finală WebView = nou WebView(); motor final WebEngine = view.getEngine(); engine.load(VK_AUTH_URL); primaryStage.setScene(new Scene(view)); primaryStage.show(); engine.locationProperty ( ).addListener(nou ChangeListener ()( @Override public void a fost modificat (ObservableValueobservabil, String oldValue, String newValue) (​if(newValue.startsWith(REDIRECT_URL))( tokenUrl=newValue; primaryStage.close(); ) ) ); ) )

Concluzie

Astfel, am învățat cum să obținem un token de acces VKontakte, cu ajutorul căruia puteți apela metode API. Dacă acest articol trezește interesul comunității, în articolul următor voi descrie cum să apelezi anumite metode API folosind un token, cum să verifici validitatea unui token (metoda secure.checkToken(), desigur) și să scriu câteva un fel de aplicație demonstrativă, de exemplu, pentru a salva toată muzica dintr-o listă de redare pe computer. Apropo, nu uitați că, de fapt, totul a fost inventat înaintea noastră și există deja biblioteci pentru lucrul cu API-ul VK pentru aproape orice limbă. Avem, în care am încercat să colectăm cele mai bune dintre ele.

Dacă aveți idei sau întrebări, bine ați venit la comentarii (le citesc și răspund tuturor). De asemenea, puteți pune întrebări

Recent, au apărut un număr imens de servicii online, aplicații de calculator sau mobile și scripturi care sunt destinate VKontakte, dar pentru ca acestea să funcționeze trebuie să fii autorizat prin jeton de acces.

Unele servicii oferă posibilitatea de a obține o cheie de acces, care este necesară pentru autorizare. Acest lucru durează câteva secunde. Dar ce se întâmplă dacă ați descărcat scriptul, dar nu aveți cheia access_token necesară?

De unde pot obține access_token?

Astăzi vom analiza cum să vă conectați la VKontakte folosind un link direct API VKontakte (bazat pe protocol OAuth) sau, cum se mai spune, Fluxul implicit. Autorizarea, dacă utilizați această metodă, se face prin aplicația VK, care este indicată ca ID. Astăzi, această metodă este considerată cea mai sigură. Este posibil să întâlniți articole care vorbesc despre metode de obținere jeton de acces folosind aplicații care provoacă (și din motive întemeiate!) suspiciuni. Dar astăzi vom vorbi despre cum să vă conectați prin aplicațiile oficiale VKontakte.

APPLICATION_ID

Dacă înțelegeți acest lucru, apare în mod firesc următoarea întrebare: de unde pot lua tocmai acest link?

Primirea unui token prin propria aplicație.

  • Folosind propria aplicație. Această metodă este în mod evident concepută pentru faptul că aveți o aplicație a propriului design. Dacă nu aveți unul, acum este momentul să îl creați. Acest lucru este foarte ușor de făcut: trebuie doar să urmați linkul vk.com/apps?act=manageși faceți clic pe " Creați o aplicație».

Sistemul vă va cere să introduceți un nume pentru aplicație. Ca exemplu, puteți folosi „ Se obține access_token" Verificați dacă " Aplicație autonomă" Apoi, faceți clic pe „ Conectați aplicația».

Pentru a confirma aplicația, va trebui să introduceți un cod care vă va fi trimis pe numărul de telefon specificat. În această etapă a creării aplicației, puteți atașa dispozitivul mobil la pagina VK. Pentru a face acest lucru, trebuie să faceți clic pe „ Conectați dispozitivul" Este posibil fără a fi conectat la un cont. Atunci trebuie doar să urmezi linkul „ Confirmați prin SMS».

După ce vă confirmați înregistrarea, se va deschide o pagină care oferă informații despre aplicația care a fost creată. Presa " Setări", care se află în colțul din stânga. Acolo este situat client_id – ID-ul aplicației VKontakte.

https://oauth.vk.com/authorize?client_id= 5563738 &scope=notify,fotografii,prieteni,audio,video,note,pagini,documente,stare,întrebări,oferte,perete,grupuri,mesaje,notificări,statistici,anunţuri,offline&redirect_uri=http://api.vk.com/blank. html&display=page&response_type=token

5563738 este ID-ul aplicației pe care ați creat-o. Veți ajunge cu o combinație similară. Pentru a obține cheia de acces, pur și simplu urmați linkul furnizat.

Primirea unui token prin aplicația oficială VK.

Metoda diferă de cea descrisă mai devreme doar prin faptul că nu trebuie să vă creați propria aplicație. Utilizați ceea ce a fost deja creat. Poți avea încredere în el sută la sută.

Metoda va fi luată în considerare folosind exemplul VKontakte pentru Android. ID-ul este cam asa: 2890984 . Această combinație trebuie înlocuită în legătură.

Veți obține următoarele:

https://oauth.vk.com/authorize?client_id= 2890984 &scope=notify,fotografii,prieteni,audio,video,note,pagini,documente,stare,întrebări,oferte,perete,grupuri,mesaje,notificări,statistici,anunţuri,offline&redirect_uri=http://api.vk.com/blank. html&display=page&response_type=token

Aceasta se încheie partea articolului în care am analizat opțiunile de identificare a aplicației care pot fi utilizate pentru autorizare. Au mai rămas doar câteva puncte de atins:

✅ Permisiuni:

  • În exemplele descrise mai sus, parametrul domeniul de aplicare conține multe nume de secțiuni ale rețelei sociale VKontakte: audio, fotografii, notificări, prieteni. Acestea sunt secțiunile care vor fi deschise aplicației. Access_token poate fi folosit în diferite moduri. ID-ul pe care îl utilizați aparține unei aplicații de încredere. Acesta este motivul pentru care puteți crea un access_token care are toate drepturile de acces. Devine universal, astfel încât să poată fi folosit peste tot.

✅ access_token:

Ultima întrebare care trebuie atinsă este cum să obțineți direct cheia în sine jeton de acces. După ce primiți linkul (folosind una dintre metode), va trebui să faceți clic pe el pentru a deschide drepturile de acces.

După aceasta, cheia necesară va apărea în bara de adrese. Este copiat manual: după access_token= și înainte de &expires_in.

Ei bine, merită să închei cu câteva sfaturi:

  • Nu dați cheia access_token unor persoane neautorizate.
  • Nu ar trebui să vă conectați folosind aplicații care nu sunt de încredere. Se recomandă să folosiți doar cele proprii sau oficiale.
  • Scoateți cheia după ce ați folosit-o. Dacă este necesar, puteți oricând să creați unul nou.
  • Toate sesiunile active ar trebui să se încheie după ce nu mai sunt necesare. Puteți face acest lucru prin setările de securitate a contului dvs.