Ce este un domeniu api în VK. Un exemplu de lucru cu API-ul VK în PHP

Rețelele sociale au devenit un instrument integral pentru promovarea site-urilor web. Pentru a promova un site web prin intermediul rețelelor sociale. rețeaua ar trebui să creeze un grup sau o pagină pentru acest site. Câștigă abonați, postează știri pe perete și multe altele (acesta este un subiect pentru o notă separată). Multe dintre aceste procese pot fi automatizate folosind API (interfața de programare a aplicației) a corespunzătoare rețea socială. În acest articol, voi explica cum să vă conectați la API-ul VK (VKontakte), cum să începeți să lucrați cu API-ul VK și, de asemenea, voi da câteva exemple de lucru cu API-ul VKontakte.

Crearea unei aplicații VKontakte

Și deci să începem. Vk api are multe metode, dar una dintre principalele lor diferențe este că pentru a face cereri către vk api prin unele metode de care aveți nevoie cheie specială acces - token (access_token). Îl puteți obține prin crearea propriei aplicații. Ni se oferă mai multe tipuri de aplicații, dar eu aleg tipul Standalone. Am destul. Pentru a începe crearea aplicației, urmați linkul și găsiți-vă în fereastra următoare.


Aici selectăm tipul și numele aplicației noastre. Facem clic pe conectarea aplicației și primim un SMS cu un cod la numărul de telefon legat de contul VK din care creăm aplicația. Introduceți-l și mergeți la următoarea fereastră. În această fereastră, accesați fila de setări.


În fila de setări vedem câmpuri numite ID aplicație și cheie de securitate. Înregistrăm aceste date undeva. Nu am făcut nimic altceva în file. Starea aplicației a fost lăsată în poziția dezactivată. Faceți clic pe Salvați setările. Gata, am creat aplicația VKontakte.

Primirea unui token (access_token) VK api

https://oauth.vk.com/authorize?client_id= &afisare= [vizualizare fereastră]&redirect_uri=https://oauth.vk.com/blank.html&scope= [permisiunile aplicației]&response_type=token&v=5.52

  • client_id - ID-ul aplicației noastre, obținut anterior.
  • display - tipul de fereastră în care va avea loc autorizarea. Poate fi pagina, pop-up, atingere și wap
  • domeniul de aplicare - drepturile de acces ale aplicației noastre privind datele utilizatorului. Mai multe despre drepturi mai jos.

Drepturile de aplicare VK sunt relative utilizator specificat poate fi specificat în text și formă digitală. În text, va arăta astfel scope=prieteni, mesaje, grupuri. Cu această linie de cod am permis aplicației vk accesul la prietenii, mesajele și grupurile utilizatorului. Drepturile sunt stabilite și în formă digitală. Fiecare regulă are o mască de biți și suma acestor măști și va permite aplicației să efectueze anumite acțiuni. De exemplu, dreapta este prieteni (+2), mesaje (+4096), grupuri (+262144), ca urmare, suma măștilor de biți va fi 266242 și codul scope=266242 va fi analog cu scope=friends ,mesaje,grupuri . Atentie speciala Vreau să dau dreptul la offline. Setarea corectă face ca simbolul pe care îl primim să fie infinit. Dacă acest drept nu este setat prin anumit timp jetonul va trebui obținut din nou. Puteți citi mai multe despre drepturile aplicației VK aici. Drept urmare, să creăm o adresă pentru ca aplicația să primească un token cu drepturi de acces la prietenii, mesajele și grupurile utilizatorului, precum și un token nemuritor. ID-ul aplicației să fie 123456. Această adresă va arata asa:

https://oauth.vk.com/authorize?client_id=123456&display=page&redirect_uri=https://oauth.vk.com/blank.html& scope=friends,messages,groups,offline&response_type=token&v=5.52


Confirmăm acțiunea și ajungem la o pagină cu un avertisment, luăm indicativul primit din bara de adrese a browserului. Aceasta se va întâmpla după #access_token= , codul expires_in=0 ne spune că API-ul VK token (access_token) este nemuritor. În consecință, user_id= este id-ul utilizatorului pentru care am primit jetonul.

Să mergem la setările contului din fila de setări ale aplicației și să vedem aplicația noastră.


Acum suntem cu toții pregătiți să lucrăm cu API-ul VKontakte.

Exemple de lucru cu api vk

Pentru a lucra cu API-ul VK folosesc limbajul programare php. Prin urmare, voi da exemple în PHP. Pentru a efectua orice acțiune, trebuie să trimitem o solicitare către api vk. De asemenea, vă putem trimite cererea prin bara de adresa browser. Adică, o solicitare este o anumită adresă URL cu anumiți parametri specificați în ea. Sintaxa pentru crearea unui astfel de URL este descrisă mai jos.

Https://api.vkontakte.ru/ metoda/[METODA NUMĂRĂ]?[PARAMETRI METODEI NUMATE]

Lista metodelor api vk este aici. Nu ne vom concentra mai mult pe asta deocamdată, apoi, cu exemple reale, totul va deveni clar. Tot ce rămâne este să descoperi cum să trimiți o solicitare către API-ul VKontakte folosind php. Pentru aceasta vom folosi funcția php file_get_contents , precum și funcția json_decode, deoarece vom primi răspunsul de la server în format json. Iată un șablon pentru executarea unei cereri către VK în PHP.

$result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/[METODA NUMĂRĂ]?[PARAMETRII METODEI DENUMITE]"));

Ei bine, acum câteva exemple de lucru cu API-ul VK

$userid=12345; $mytoken=56789; /*va returna un obiect cu sexul și ziua de naștere ale utilizatorului*/ $request_params = array("user_id" => $userid, "fields" => "sex", "fields" => "bdate"); $get_params = http_build_query($request_params); $rezultat = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); /*verificarea utilizatorului pentru VK ban*/ $request_params = array("user_id" => $user_id, "fields" => "deactivated"); $get_params = http_build_query($request_params); $rezultat = json_decode(file_get_contents("https://api.vk.com/method/users.get?". $get_params)); if(isset($result->response->deactivated))( echo "Pagină înghețată sau ștearsă"; ) /*trimite un mesaj utilizatorului cu user_id=222222*/ $mesage="Bună ziua, ce mai faci?"; //codează șirul $msg=urlencode($mesage); $rezultat = json_decode(file_get_contents("https://api.vkontakte.ru/method/ messages.send?user_id=222222& message=".$msg."&access_token=".$mytoken)); /*să invităm utilizatorul cu user_id=222222 ca prieten*/ $mesage="Let's be friends"; $msg=urlencode($mesaj); $result=json_decode(file_get_contents("https://api.vkontakte.ru/ method/friends.adduser_id=222222& text=".$msg."&access_token=".$mytoken));

API-ul are multe metode, așa că vă sfătuiesc să citiți documentația. Desigur, interogările nu sunt întotdeauna executate corect și returnează coduri de eroare. Erorile pot fi vizualizate aici. Așadar, puteți pur și simplu să vă conectați la vk api și să vă automatizați acțiunile în contact.

Salutare tuturor!

Am vrut să lucrez cu API-ul VKontakte, astfel încât să îmi pot gestiona pe deplin contul și grupurile/publicele direct din scripturi. Și totul se face în PHP. Apropo, există o bijuterie potrivită pentru Ruby, iar pentru PHP există o grămadă de articole, dintre care jumătate conțin deja informații irelevante. Deci ce ar trebui sa facem?

După cum se spune, cel care caută va găsi mereu. Un proiect potrivit a fost găsit pe GitHub - vkPhpSdk, care simplifică foarte mult lucrul cu această rețea socială

Pentru început, observ că există două opțiuni pentru a lucra aici:

2) Odată cu crearea unei aplicații și autorizarea ulterioară a utilizatorului pentru lucru.

Voi explica pe scurt diferențele. În primul caz, puteți pur și simplu să faceți cereri către API fără nicio autorizație și să primiți diverse date. De exemplu, o listă de prieteni ai unui anumit utilizator, mesaje de pe perete etc. Aproape toate funcțiile get sunt disponibile fără un access_token. Prin urmare, tot felul de analizoare diferite și alte lucruri pot fi tăiate astfel.

A doua opțiune implică și posibilitatea publicării înregistrărilor, descărcarea conținutului medical și, în general management complet cont (poți chiar să postezi stări, lol). Dar aici trebuie și să creați Aplicație autonomă(Nu selectați o aplicație pentru un site Web, nu este posibil să faceți cereri setate de pe acesta) și obțineți-o anumite drepturi la utilizator.

Asa de. Să ne uităm la un exemplu din vkPhpSdk:

api("getProfiles", array("uids" => $vkPhpSdk->getUserId(), "fields" => "uid, first_name, last_name, nickname, screen_name, photo_big",)); echo „Profilul meu:(br/)”; ecou „(pre)”; //analizatorul de pe site doar se încurcă, cred că puteți ghici ce trebuie făcut =) print_r($result); ecou „(/pre)”; ?>

Aici primim pur și simplu date despre utilizator. Câmpurile sunt specificate în cerere.

authorize() === adevărat) ( ​​// Initează SDK vk.com $vkPhpSdk = nou VkPhpSdk(); $vkPhpSdk->setAccessToken($oauth2Proxy->getAccessToken()); $vkPhpSdk->setUserId($-auth2Proxy($-auth2Proxy) >getUserId ()); // Apel API - postare pe wall $result = $vkPhpSdk->api("wall.post", array("owner_id" => $vkPhpSdk->getUserId(), "message" => "Bine ai venit la vkPhpSdk !",)); echo "Răspuns post de perete: (br /)"; echo "(pre)"; print_r($rezultat); echo "(/pre)"; ) else echo "A apărut o eroare"; ?>

Și acum aici postăm un mesaj pe peretele utilizatorului. După ce vizitează pagina cu acest cod, va apărea o cerere de drepturi din aplicație. Dacă utilizatorul este de acord, o postare este postată pe peretele lui.

Client_id și client_secret pot fi obținute la crearea aplicației

Parametrul scope trece la permisiunea de executare a funcției pe care o cere aplicația

În acest exemplu, am notat toate funcțiile, inclusiv offline. Particularitatea acestei funcții este de așa natură încât, după ce ați primit un access_token o dată, puteți pur și simplu să-l împingeți în $vkPhpSdk->setAccessToken și nici măcar să nu apelați Oauth2Proxy. Ca urmare, aplicația va funcționa cu drepturile unui utilizator autorizat până când acesta va schimba parola. Acest lucru va fi util dacă scrieți un bot și, după ce l-ați autorizat o dată, îl veți controla din script.

Cumva așa. După cum puteți vedea, totul este de fapt foarte simplu. Noroc! =)

Rețelele sociale au făcut de multă vreme parte din viața noastră. Aproape fiecare utilizator are o pagină personală cu servicii precum VKontakte, Facebook, Twitter și altele. Și deoarece astfel de servicii sunt foarte populare în zilele noastre, au creat un API special. Folosind metodele oferite de API-ul unui anumit sistem, puteți obține o listă de utilizatori, o listă de fotografii, chiar și să găsiți toți utilizatorii dintr-o anumită zonă de pe hartă, lista de acțiuni este foarte mare.

Cu toate acestea, nu orice utilizator poate accesa aceste date. Majoritatea serviciilor necesită înregistrarea și crearea unei aplicații speciale care va funcționa cu metodele unui anumit serviciu.

Deci, astăzi vom analiza un exemplu de lucru cu API-ul VK, în care vom primi o listă de utilizatori cu numele „Masha” în orașul „Moscova”. Vom căuta Mash la Moscova.

În primul rând, trebuie să creăm o aplicație. Pentru a crea o aplicație, urmați linkul ( https://new.vk.com/dev -> Creați o aplicație).

Introduceți numele și deoarece analizăm un exemplu în PHP folosind un server web, selectați tipul aplicației - „ site web". Indicăm adresa site-ului dvs. și domeniul de bază (dacă o faceți pe un server web local, scrieți http://localhost). Faceți clic pe butonul „Conectați site-ul” și aplicația dvs. este creată, o parte a căii a fost finalizată.

Să începem programarea. Există multe clase pentru lucrul cu API-urile site-urilor web, dar vom scrie totul noi înșine pentru a înțelege principiile de bază de funcționare.

Pentru a obține acces la metodele API, trebuie să parcurgeți câțiva pași:

  1. Autorizați utilizatorul;
  2. Obțineți o cheie de acces;
  3. Obțineți access_token;
  4. Execută o solicitare către o metodă;

4 pași simpli, dar în realitate puțin mai complicati.

Autorizați utilizatorul:

sesiune_start(); $client_id = "1234567"; $redirect_uri = "http://localhost"; $display = "pagina"; $scope = "prieteni, grupuri"; $response_type = "cod"; $auth_uri = "https://oauth.vk.com/authorize?client_id=($client_id)&display=($display)& redirect_uri=($redirect_uri)&scope=($scope)&response_type=($response_type)&v=5.52 ";

Să ne uităm punct cu punct la ceea ce este scris aici:

  • $client_id— identificatorul aplicației dvs. atribuit de sistem;
  • $redirect_uri— pagina către care va fi redirecționat utilizatorul după autorizarea cu succes;
  • $display— cum este afișată pagina de autentificare, în acest caz va fi o pagină separată;
  • $scop— permisiuni pentru aplicație, separate prin virgule. Lista plina ;
  • $response_type— tipul de răspuns, în acest caz va fi furnizat JSON;
  • $auth_uri— formăm un șir pentru autorizarea utilizatorului, trecând parametrii necesari;

Primim access_token:

if(isset($_GET["cod"]))( $cod = $_GET["cod"]; $client_secret = "parola_aplicație"; $acces_uri = "https://oauth.vk.com/access_token"; $ fields = array("client_id" => $client_id, "client_secret" => $client_secret, "redirect_uri" => $redirect_uri, "code" => $cod_acces .= "?client_id=($fields["); client_id"])&"; $acces_uri .= "client_secret=($fields["client_secret"])&"; $acces_uri .= "redirect_uri=($fields["redirect_uri"])&"; ["code"])"; $res = file_get_contents($acces_uri); $response_string = json_decode($res,true); $_SESSION["token"] = $response_string["access_token"];

Totul este destul de simplu aici, scriem codul rezultat în variabila $code, creăm o legătură cu datele de care avem nevoie - $access_uri. Apoi, folosind funcția file_get_contents, executăm cererea și, ca răspuns, primim un obiect JSON pe care îl decodăm imediat într-o matrice. La sfârșit, pur și simplu scriem jetonul primit într-o variabilă de sesiune. Nu este o abordare foarte bună, este mai bine să scrieți direct în baza de date, dar nu acesta este scopul acestui ghid.

$client_secret — « Cheie protejată» din aplicația dvs., nu va funcționa fără ea :)

Acum avem totul pregătit pentru a obține o listă de utilizatori dintr-un anumit oraș. Algoritmul de operare este foarte simplu: creați o solicitare, executați-o, primiți date.

Formăm:

Dacă (isset($_SESSION["token"])) ( $nume = "Masha"; $url = $url = "https://api.vk.com/method/users.search?city_id=1&q=($ name)&count=1000&access_token=($_SESSION["token"])"; $res = file_get_contents($url); $users_data = json_decode($res,true); $users_count = array_shift($users_data["response"]) ; $users_list = $users_data["răspuns"];

Această solicitare ne va returna 1000 de utilizatori din Moscova. La ieșire, vom primi numărul de înregistrări afectate și o matrice asociativă cu utilizatorii înregistrați în variabila $users_list, pe care o putem folosi la discreția noastră.

Singura avertizare este că API-ul nu vă permite să selectați mai mulți utilizatori, chiar dacă utilizați parametrul offset din șirul de interogare. Din păcate, aceasta este o limitare în API-ul VK.

Puteți vedea lista completă a parametrilor API-ului VK pentru o solicitare în

Cei care decid să dezvolte aplicații pentru VKontakte vor trebui, mai devreme sau mai târziu, să se confrunte cu un astfel de concept precum API (interfață de programare a aplicațiilor), care înseamnă literalmente interfață de programare a aplicațiilor.


Mai simplu - API acesta este un întreg complex de diverse funcții gata făcute, clase gata făcute, constante etc., care pot fi utilizate în terți. API-ul VKontakte este îmbunătățit în mod constant și astăzi este deja un set complet funcțional de suplimente care permite.

Puteți citi documentația în detaliu aici.
Ultima transformare globală a acestui mediu de dezvoltare a fost realizată în aprilie 2009. Desigur, chiar și după aceea site-ul a fost modificat constant. Să remarcăm principalele caracteristici ale API-ului VKontakte

  1. API-ul a permis aplicațiilor să acceseze prietenii, fotografiile și videoclipurile acestora. Aplicațiile pot acum creează singur albume și plasează informații în ele. Acest lucru nu s-a întâmplat înainte. Important este ca atunci cand instaleaza o astfel de aplicatie, utilizatorul decide daca ii acorda sau nu acces la datele personale.
  2. Trimiterea notificărilor de către aplicații. Da, uneori e enervant Notificare pop-upîn partea stângă jos a ecranului este implementat și folosind API-ul.
  3. Invitarea prietenilor la aplicații a devenit, de asemenea, mai ușoară datorită interfața de programare a aplicației, pe care a fost implementată această funcție de invitație în masă. Ulterior, aceste invitații au început să fie folosite pentru publicitate.
  4. Publicitatea de la VK a dispărut din paginile aplicațiilor. Acum, dezvoltatorul unui joc sau program pentru VK decide singur dacă are nevoie de publicitate pe unitatea sa flash. Dacă da, el are dreptul să-și plaseze pe al său și să primească din el 100% profit.
  5. După cum au numit-o dezvoltatorii VK, utilizatorii care integrau aplicații au obținut acces la economia internă a rețelei. Mai simplu spus, a devenit disponibil un API care permite utilizați VKontakte ca plăți interne.
  6. Oportunitate lansați aplicații în modul ecran complet. Creșterea dimensiunii maxime a cadrului a făcut posibilă plasarea de bannere suplimentare cu publicitate, așa că astăzi dezvoltarea de aplicații pentru VK nu este doar o plăcere, ci o activitate destul de profitabilă atunci când decideți să vă angajați în publicitate și să vindeți bannere din acesta.
  7. Aplicațiile de la terțe părți se răspândesc acum și prin fluxul de știri. Acesta este un alt pas pentru a le populariza. În plus (chiar dacă a fost cu mult timp în urmă, o pictogramă în miniatură a devenit disponibilă pentru aplicație).
  8. Ordinea de ieșire a aplicației implementat și folosind API. Astăzi, implicit, acele jocuri care sunt lansate cel mai des sunt pe primele poziții. Cele pe care nu le-ați folosit de mult timp le găsiți la sfârșitul listei.
  9. Datorită API-ului, a devenit disponibil și statistici detaliate încorporate. Astăzi puteți număra cu ușurință vizitatorii, vizualizările paginii, sexul, vârsta, locația utilizatorului aplicației. Toate informațiile sunt prezentate în cel mai vizual mod posibil, sub formă de grafice flash, care sunt construite instantaneu. Acest lucru a fost făcut în primul rând pentru publicitate (vânzarea spațiului publicitar). Primești statistici, vezi că aplicația este folosită de zeci de mii de oameni. Arătați acest lucru agentului de publicitate, care probabil va dori să plătească pentru banner într-o astfel de aplicație.
  10. Pentru cele mai populare aplicații a devenit posibil înregistrarea subdomeniilor scurte(de exemplu chat.vk.com și similare) pentru memorare ușoară și acces rapid.
  11. Ei bine, în sfârșit, oportunitatea a apărut afișarea informațiilor pe paginile personale ale utilizatorilor.