Cum să autentificați utilizatorii cu Twitter OAuth 2.0

În acest tutorial, veți învăța cum să utilizați Twitter API 1.1 și OAuth 2.0 pentru a autentifica utilizatorii aplicației dvs. și pentru a publica un tweet de testare.

De ce avem nevoie de un cadru de autentificare??

Pentru a crea servicii care acționează în numele conturilor utilizatorilor și pentru a le face cu adevărat sigure și ușor de dezvoltat, avem nevoie de trei lucruri:

  • Aplicație Twitter
  • REST API
  • accesul la contul de utilizator

Pentru a pune piesele împreună într-un mecanism de lucru, avem nevoie de un cadru de autentificare. Ca un standard Twitter, API-ul REST identifică aplicațiile Twitter și utilizatorii care utilizează OAuth.

Ce este OAuth?

Potrivit lui oauth.net, OAuth este:

Un protocol deschis pentru a permite autorizarea securizată printr-o metodă simplă și standard din aplicații web, mobile și desktop.

OAuth este cel mai comun cadru de autorizare de astăzi și este folosit pe cele mai frecvente aplicații și servicii web, cum ar fi GitHub, Google, Facebook și, bineînțeles, Twitter.

Acest cadru permite utilizatorilor să vă acorde permisiunea de a acționa în numele lor, fără a partaja parola contului. După ce utilizatorul a dat permisiunea, OAuth vă va returna un simbol. Acest simbol acordă accesul pentru a face cereri în numele utilizatorului.

Jetoanele de pe Twitter nu au un timp de expirare, dar pot deveni nevalabile după ce utilizatorul a respins cererea dvs. De asemenea, echipajul Twitter vă poate suspenda aplicația dacă depășiți limitele sau dacă efectuați alte acțiuni care încalcă Termenii API. Puteți examina acești termeni pentru a afla mai multe despre încălcări specifice.

Creați aplicația

Ca un prim pas, trebuie să creăm o nouă aplicație Twitter. Să creăm o nouă aplicație pe pagina de gestionare a aplicațiilor.

După ce vă conectați, trebuie să faceți clic pe Creați aplicația nouă și completați formularul cu detaliile aplicației: nume, descriere, site web și adresă URL de apel invers.

Care este adresa URL de apel invers? Când utilizatorii acceptă aplicația noastră pentru a-și utiliza contul, browserul le va trimite la această adresă URL cu verificatorul OAuth din GET. Și vom folosi acest verificator pentru a obține indicativul de acces al utilizatorului.

Înștiințare: Nu uitați să înlocuiți site-ul web și adresa URL de apel invers cu domeniul dvs. public atunci când împărțiți aplicația dvs. cu utilizatori reali.

După completarea formularului, puteți semna Acordul pentru dezvoltatori și faceți clic pe A depune pentru a crea aplicația.

Felicitări! Acum aveți acces la o pagină unde puteți să vă uitați la detalii și să modificați setările noii dvs. aplicații, să modificați permisiunile și să gestionați cheile și token-urile de acces. Navigați la Cheile și accesoriile și găsiți Cheia de consum și Secretul consumatorilorVom folosi în curând.

Începeți codificarea

Alegerea unei Biblioteci

Înainte de a începe să codificăm, trebuie să alegem o bibliotecă pentru a lucra cu Twitter API și Oauth 2.0. Puteți obține o prezentare generală a bibliotecilor existente pe pagina de dezvoltatori Twitter. În acest tutorial voi folosi TwitterOAuth ca fiind cel mai popular și ușor de utilizat. Îl putem instala din linia de comandă cu Compozitor:

compozitorul are nevoie de abraham / twitteroauth

Fișierul Config

Să creăm un nou fișier numit config.php pentru a stoca toate datele statice. Specificați următoarele detalii în aplicația dvs..

 'EPKXCv3tUsq9DoxwZy616Cy1o', 'consumer_secret' => 'UXnAeXkCZFIOnLVQCS4LFR7GsCTrOiU77OGSFL3dUoYZiTxU8x', // 'url_login' => 'http: //localhost/twitter_login.php', 'url_callback' => 'http: //localhost/twitter_callback.php' ;

Porniți scriptul de conectare

Acum creați un nou fișier numit twitter_login.php și includeți autoload Composer, bibliotecă TwitterOAuth, sesiune de pornire și importați setările aplicației noastre din fișierul de configurare.

Solicitați permisiunea

În această parte trebuie să solicităm utilizatorului să autorizeze aplicația noastră. Pentru a atinge acest obiectiv, vom crea un obiect al clasei TwitterOAuth, vom solicita un simbol al aplicației din API-ul Twitter, vom obține adresa URL a paginii de autorizare utilizând acest jeton și vom redirecționa utilizatorul către această pagină.

// a crea obiectul TwitterOAuth $ twitteroauth = noul TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret']); // cererea token de cerere $ request_token = $ twitteroauth-> oauth ('oauth / request_token', ['oauth_callback' => $ config ['url_callback']]); // aruncați excepția dacă ceva nu merge bine dacă ($ twitteroauth-> getLastHttpCode ()! = 200) throw new \ Exception ('A apărut o problemă la efectuarea acestei solicitări');  // salvați simbolul aplicației în sesiune $ _SESSION ['oauth_token'] = $ request_token ['oauth_token']; $ _SESSION ['oauth_token_secret'] = $ request_token ['oauth_token_secret']; // generați URL-ul pentru a solicita autorizarea aplicației noastre $ url = $ twitteroauth-> url ('oauth / authorize', ['oauth_token' => $ request_token ['oauth_token']]; // și antet de redirecționare ("Locație:". $ url);

Rețineți că salvăm jetoanele de aplicație pentru sesiune, deoarece vom avea nevoie de ele în etapa următoare.

Acum puteți rula acest script în browser și, dacă totul merge bine, veți fi redirecționat către pagina API Twitter cu ceva de genul:

Veți fi redirecționat (ă) la adresa URL de apel invers făcând clic pe Autorizați aplicația buton. Dar nu atât de repede, mai întâi trebuie să creăm un script de apel invers.

Obțineți Tokenul utilizatorului

Următorul pas este să creați un script de apel invers. Să creăm un nou fișier numit twitter_callback.php și includ biblioteca TwitterOAuth, fișierul config și sesiunea de pornire așa cum am făcut-o în partea anterioară.

Apoi vom verifica dacă am primit un parametru de verificator auth pe API-ul Twitter. Dacă ceva lipsește, vom redirecționa utilizatorul pentru a vă conecta din nou.

$ oauth_verifier = input_filter (INPUT_GET, 'oauth_verifier'); ($ _SESSION ['oauth_token']) || gol ($ _ SESSION ['oauth_token_secret'])) // ceva lipsește, du-te și autentifică-te din nou header ('Location:'. config [ 'url_login']); 

Următorul pas este să vă conectați la API-ul Twitter cu jetonul aplicației și să solicitați un jeton de utilizator utilizând verificatorul OAuth:

// conectați cu tokenul aplicației $ connection = new TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret'], $ _SESSION ['oauth_token'], $ _SESSION ['oauth_token_secret']); // cereți tokenul utilizatorului $ token = $ connection-> oauth ('oauth / access_token', ['oauth_verifier' => $ oauth_verifier]);

Și acum aveți jetonul de utilizator stocat în $ jeton variabil.

Cum se utilizează acest jeton

Putem folosi acest jeton pentru a acționa în numele contului utilizatorului. Putem stoca în sesiune sau salva în baza de date pentru a gestiona contul de utilizator data viitoare fără a cere permisiunea. Pentru a vă conecta la API-ul Twitter cu jetonul de utilizator, trebuie doar să faceți acest lucru:

$ twitter = noul TwitterOAuth ($ config ['consumer_key'], $ config ['consumer_secret'], $ token ['oauth_token'], $ token ['oauth_token_secret']);

Creați un test Tweet

Pentru a crea un tweet nou din contul utilizatorului, trebuie să adăugăm doar o mică bucată de cod:

$ status = $ twitter-> post ("statuses / update", ["status" => "Vă mulțumesc @nedavayruby, acum știu cum să autentificați utilizatorii cu Twitter din cauza acestui tutorial https://goo.gl/N2Znbb" ]); echo ("Creat stare nouă cu #". $ status-> id. PHP_EOL);

De asemenea, puteți obține detalii despre starea din răspunsul API stocat în starea $ variabil.

În cele din urmă, suntem gata să testăm scenariul nostru. 

Concluzie

După cum puteți vedea, crearea unei aplicații Twitter nu este atât de greu. Acum aveți toate funcțiile de API pe care le puteți utiliza: puteți crea tweets noi, încărca media, gestiona prietenii și așa mai departe.

Rețineți că acum puteți colecta tokenuri OAuth și aveți o mare putere să acționați în numele utilizatorilor dvs. Dar cu mare putere vine o mare responsabilitate - de aceea trebuie să vă ocupați de această situație grațios și să serviți o experiență de calitate a utilizatorului.

Dacă aveți întrebări sau reacții, nu ezitați să le postați în secțiunea de comentarii. Aștept cu nerăbdare acest lucru și voi încerca să răspund la fiecare dintre comentariile dvs..

Citirea ulterioară și legăturile apropiate

Rețineți că am pregătit un proiect complet pentru acest tutorial pe GitHub și puteți să îl aruncați cu un link pe partea dreaptă a site-ului sau folosind acest link.

  • Aplicații Twitter
  • Twitter REST API-uri
  • Twitter Privire de ansamblu OAuth
  • TwitterOAuth Biblioteca PHP
  • Alte biblioteci Twitter
  • OAuth homepage
  • Articolul original despre Cum se autentifică utilizatorii cu Twitter OAuth.
Cod