, skabe en twitter oauth anvendelse,,,,, 1,,,,,,,,, 7,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, oauth kan være et vanskeligt begreb til itvivl først, men med twitter api nu om dets anvendelse, er det noget, du må forstå, inden der oprettes en twitter anvendelse.denne lektion vil introducere dig for oauth og gå dig igennem processen med at skabe en grundlæggende anvendelse.,,,, indførelsen i denne forelæsning, vil vi bygge en simpel app, der gør det muligt for brugere til at anvende forskellige virkninger for deres twitter avatar.for at kunne arbejde med twitter api, vi skal bruge oauth at tillade vores app til at fremsætte anmodninger på brugernes vegne. vores ansøgning tilstrømning er sådan noget, er brugeren om at forbinde med twitter., og brugeren har fremlagt en liste over forpremiere avatarerne til at vælge fra, efter udvælgelsen. brugeren præsenteres en bekræftelse på skærmen, der viser den oprindelige og nye avatar til sammenligning.brugerne tilbydes også en mulighed for at sende en tweet. efter at brugeren har bekræftet, at app - skaber og uploader den modificerede avatar på twitter og en succes side vises.,, fælde, til at begynde med, bør vi sætte vores kilde fortegnelse.vi har brug for en, lib, adresseregister for vores php bibliotek (klasse) filer, tmp, fortegnelse at holde midlertidige filer (dette skal skrivbare af server), en, css, fortegnelse for vores stil status og img, fortegnelse, for nogen billeder. her er, hvad din telefonbog, træ - om:,, tutor, css, img, lib, tmp (skrivbare), registrering af din ansøgning, for at bruge oauth, du får brug for det, der kaldes en forbruger, centrale og hemmelige med at identificere din app.for at opnå dette, skal de melde en ansøgning med twitter, ved at følge disse trin. gå til registrering side, skovning i, hvis det er nødvendigt.du vil blive budt velkommen af form ses nedenfor:,, at udfylde en blanket med oplysninger om din app.i vores tilfælde, anvendelse, er browser, og vi er nødt til at fastsætte en standard, callback url.denne url kan være alt, så længe det er en gyldig format.vi vil være overordnet den callback i kode, så det er ikke afgørende, at det er en rigtig url.den automatisk adgang, bør læse &, skrive, for nemheds skyld. når du registrerer og accepterer betingelserne, vil du blive forelagt oplysninger om din nye anvendelse.de vigtige oplysninger, vi har brug for, er den, der forbruger nøgle, og forbrugernes hemmelighed, som skulle se sådan noget:,, downloade tmhoauth bibliotek, vi vil gøre brug af et bibliotek til at håndtere alle detaljerne bag, at oauth anmodninger.i denne forelæsning, vil vi bruge @ themattharris "tmhoauth bibliotek, som støtter fil at uploade.,, downloade tmhoauth fra github, ekstrakt, tmhoauth.php til, lib, statistik, skabte vi tidligere, autentificering, autentificering af oauth er dybest set en tre - trins proces.for en mere tilbundsgående forklaring, se denne side om godkendelse på twitter, men her er et resumé:,, app opnår en anmodning tegn: det første skridt er for vores app at identificere sig selv twitter (ved hjælp af sine forbrugernes centrale) og opnå en anmodning til grund.vi bliver nødt til at redde denne anmodning om bevis for senere, bruger tillader app på twitter: brugerne skal nu sendes til twitter for at give vores app adgang til deres konto.efter at brugeren sendes tilbage til den callback url angivet af app. app udvekslinger anmodning bevis for adgang tegn: nu, hvor vores app er blevet godkendt, kan udveksle anmodning tegn fra trin 1 til adgang eller.når vi har adgang eller vores app er frie til at interagere med twitter api på brugernes vegne.,, så lad os komme i gang med en kode.vi tager flere opgaver i en klasse, som hedder, twitterapp,.start med følgende kode i en ny filen, l /twitterapp. folkesundhedsprogrammet, er:, <?php klasse twitterapp {/* * * denne variabel har tmhoauth formål anvendes i hele klassen * * @ var tmhoauth genstand for tmhoauth klasse * /offentlige $tmhoauth; /* * * bruger twitter data * * @ var mange oplysninger om den nuværende autentificeret bruger * /offentlige $userdata; /* * * autentificering stat * * værdier: * - 0: ikke authed * - 1: anmodning om bevis opnået * - 2: adgang eller opnået (authed) * * @ var int den aktuelle autentificering * /beskyttede $; /* * * sæt en ny twitterapp objekt * * @ param tmhoauth $tmhoauth en tmhoauth formål med forbrugernes centraleog hemmelige * /offentlige funktion __construct (tmhoauth $tmhoauth) (//redde tmhoauth objekt $- > tmhoauth = $tmhoauth;}}, her har vi skabt tre egenskaber og en simpel konstruktøren.de $tmhoauth, ejendom, vil være en tmhoauth objekt, som vil blive anvendt i hele klassen.de $userdata, ejendom vil holde et objekt, der indeholder oplysninger om brugeren, f.eks. deres twitter bruger navn og status.de $, ejendom, holder styr på den nuværende godkendelse., entreprenøren blot accepterer en tmhoauth formål og giver den til $tmhoauth, ejendom, trin 1: får en anmodning tegn, her er en metode til at opnå en anmodning tegn: /* * * opnå en anmodning tegn fra twitter * * @ tilbage bool falske, hvis anmodning mislykkedes * /privat funktion getrequesttoken() (//sender anmodning om en anmodning eller $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("oauth /request_token", ""), mængde (//over en variabel til at fastsætte den callback "oauth_callback = > $- > tmhoauth - > php_self())); hvis ($- > tmhoauth - > svar [kode] = = 200) (//- og -e anmodning symbolsk $svar = $- > tmhoauth - > extract_params ($- > tmhoauth - > svar ["svar"]); $_session ["authtoken"] = $svar ["oauth_token"] $_session ["authsecret"] = $svar ["oauth_token_secret"]; //stat er nu 1 $_session ["authstate"] = 1; //omdirigerer brugeren til twitter til at tillade $url = $- > tmhoauth - > url ("oauth /tillader", "").? oauth_token = ".- svar ["oauth_token"] header ("sted".$url) udgang;} tilbage falske}, til at forstå den første del, du behøver at vide om, tmhoauth: request() metode.denne metode giver os mulighed for at foretage en oauth mulighed for http anmodning, og den har følgende anvendelse:,, tmhoauth: anmodning ($metode, $url [$params [$$i flere dele useauth [,]]]), streng $metode - anmodning metode til brug (kom, post - osv.), snor $url - url adgang, array $params, (fakultativ) - automatiseret system af parametre til at omfatte i anmodningen, bool $useauth (valgfri, default sande) - autentificering, der kræves.,, bool $i flere dele, (frivillig misligholdelse falske) - der gælder for fil uploader, for $url parameter, vi gør brug af den, tmhoauth: url(), metode til håndværks - en url baseret på api - metode, som vi kalder:,, tmhoauth: url ($anmodning [- format), snor $anmodning - api - metoden (uden forlængelse), snor $format (valgfri, misligholdelse, json ") - den ønskede respons format (json, xml osv.), nu du er bekendt med disse metoder, må vi foretage en efter anmodning den oauth /request_token api - metode.det vil vende tilbage oauth data i en særlig form, så vi er nødt til at fastsætte formatet for blank, når vi bruger, tmhoauth: url() metode.vi er også nødt til at vedtage en variabel, oauth_callback,, hvor brugeren vil vende tilbage efter bemyndigelse på twitter.vi vil bruge den, tmhoauth: php_self(), en metode til at henvise til denne side.her er det kode igen: //sender anmodning om en anmodning eller $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("oauth /request_token", ""), system (//over en variabel, der den callback "oauth_callback = > $- > tmhoauth - > php_self()), når vi fremsætter en anmodning, som er opbevaret som et system i det, tmhoauth: reaktion, ejendom, med følgende centrale dele af data:,, kode, - http respons kode, respons - de faktiske data tilbage, rør, - den reaktion, rør, så den næste del af vores kodeks kontrollerer svarkode (200 betyder succes), og så lægger, oauth_token, og oauth_token_secret, vi modtog i møde variabler, siden vi får brug for dem senere.de er udvundet af respons efter, tmhoauth: extract_params(), metode, og der kommer en række data, der er indeholdt i svaret.- satte vi også en, authstate, samling variabel til at signalere, at vi er på næste fase af godkendelse.her er den kode, hvis ($- > tmhoauth - > svar [kode] = = 200) (//- og opbevarer anmodning symbolsk $svar = $- > tmhoauth - > extract_params ($- > tmhoauth - > og reaktion ["svar"]); $_session ["authtoken"] = $svar ["oauth_token"] $_session ["authsecret"] = $svar ["oauth_token_secret"]; //stat er nu 1 $_session ["authstate"] = 1), efter at det er gjort, nu må vi omdirigerer brugeren til oauth /tillader url, herunder, oauth_token i en parameter.her er det kode igen: //omdirigerer brugeren til twitter til at tillade $url = $- > tmhoauth - > url ("oauth /tillader", "").? oauth_token = ".- svar ["oauth_token"] header ("sted".$url); exit;, , Step 2: Get an Access Token,Here is the method to exchange our request token for an access token:,/** * Obtain an access token from Twitter * * @return bool False if request failed */ private function getAccessToken() { //set the request token and secret we have stored $this->tmhOAuth->config["user_token"] = $_SESSION["authtoken"]; $this->tmhOAuth->config["user_secret"] = $_SESSION["authsecret"]; //send request for an access token $this->tmhOAuth->request("POST", $this->tmhOAuth->url("oauth/access_token", ""), array( //pass the oauth_verifier received from Twitter 'oauth_verifier' => $_GET["oauth_verifier"] )); if($this-> tmhoauth - > svar [kode] = = 200) (//få adgang tegn og opbevarer det i en småkage $svar = $- > tmhoauth - > extract_params ($- > tmhoauth - > svar ["svar"]); setcookie ("access_token" $svar ["oauth_token"], time() + 3600 * 24 * 30); setcookie ("access_token_secret" $svar ["oauth_token_secret"], time() + 3600 * 24 * 30); //stat er nu 2 $_session ["authstate"] = 2; ////////omdirigere bruger klart rester få variabler header ("sted".$- > tmhoauth - > php_self()); udgang;} tilbage falske}, den første ting, vi gør, er at fastsætte, user_token, og user_secret i, tmhoauth: ud, system til anmodning tegn, vi opnåede tidligere. //sætte anmodningen tegn og hemmelige vi har gemt $- > tmhoauth - > ud ["user_token"] = $_session ["authtoken"] $- > tmhoauth - > ud ["user_secret"] = $_session ["authsecret"); den næste del er, hvor vi kan gøre en post anmodning om at oauth /access_token.vi lader, oauth_verifier, vi modtog i en variabel, som en parameter i denne anmodning. //sende anmodningen om adgang, symbolsk $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("oauth /access_token", ""), system (//- oauth_verifier modtaget fra twitter "oauth_verifier = > $_get [" oauth_verifier "]), twitter vil reagere med en adgang tegn og hemmelige, som vi bliver nødt til at redde for fremtidige anmodninger.så det næste stykke kode tager disse og sparer på hver en kage, så sæt den stat, til 2. hvis ($- > tmhoauth - > svar [kode] = = 200) (//få adgang tegn og opbevarer det i en småkage $svar = $denne - > tmhoauth - > extract_params ($- > tmhoauth - > svar ["svar"]); setcookie ("access_token" $svar ["oauth_token"], time() + 3600 * 24 * 30); setcookie ("access_token_secret" $svar ["oauth_token_secret"], time() + 3600 * 24 * 30); //stat er nu 2 $_session ["authstate"] = 2; //omdirigere bruger til at klare sidesten få variabler header ("sted".$- > tmhoauth - > php_self()); udgang;}, omlægge ved udgangen er der for at klare de url parametre tilbage af twitter og tillader småkager til virkning.,, trin 3: kontrollere adgangen tegn, med vores adgang tegn, som vi skal tjekke, at den er gyldig.Here is the method to do that:,/** * Verify the validity of our access token * * @return bool Access token verified */ private function verifyAccessToken() { $this->tmhOAuth->config["user_token"] = $_COOKIE["access_token"]; $this->tmhOAuth->config["user_secret"] = $_COOKIE["access_token_secret"]; //send verification request to test access key $this->tmhOAuth->request("GET", $this->tmhOAuth->url("1/account/verify_credentials")); //store the user data returned from the API $this->userdata = json_decode($this->tmhOAuth->response["response"]); //HTTP 200 means we were successful return ($this->tmhOAuth->response["code"] == 200); },This code shouldser temmelig bekendt nu.alt, hvad vi gør her, er den, user_token, og user_secret og gøre en anmodning til 1 /højde /verify_credentials.hvis twitter svarer med en 200 - kode, så adgangen bevis er gyldigt, en anden detalje at bemærke, er, at det er her, vi bor, $userdata, ejendom med de oplysninger, der indberettes af twitter anmodning.dataene er i json format, så vi bruger, json_decode(), for at omdanne det til et php objekt.her er det igen: //opbevarer brugerdata tilbage fra api $- > userdata = json_decode ($- > tmhoauth - > svar ["svar"]), trin 4: binde alt sammen med vores oauth elementer på plads, er det tid til at binde alt sammen.vi har brug for en offentlig, som metode til at lade vores klient kode til at starte autentificeringsprocessen, og her er det: /* * * giver brugeren med twitter * * @ tilbage bool autentificering vellykket * /offentlige funktion auth() (//state 1 kræver få variable at eksistere, hvis ($- > stat? = 1 & &!isset ($_get ["oauth_verifier"])) ($- > stat = 0) //1. trin: får en anmodning tegn, hvis ($- > state = = 0) (tilbagevenden $- > getrequesttoken();} //trin 2: få adgang tegn elseif ($- > state = = 1) {tilbage $- > getaccesstoken();} //trin 3: kontrollere adgangen symbolsk forrentning, $- > verifyaccesstoken();}, mest af, auth(), metoden skal være sig selv.på grundlag af den stat, der gennemfører passende metode for den fase af godkendelse.hvis staten er 1, en, oauth_verifier, få variabel skal findes, så metoden også kontrol. nu skal vi skabe en offentlig metode til at finde ud af, om vi er bekræftet.det, isauthed(), metode afkast, hvis staten er 2: /* * * se den aktuelle autentificering * * @ tilbage bool sandt, hvis staten er 2 (bekræftet) * /offentlige funktion isauthed() {tilbage $- > state = = 2). vi kan også bruge en metode til fjerne brugerens autenticitet.det, endsession(), metode fastsætter staten til 0 og fjerner de kager, der indeholder adgang tegn: /* * * fjerne brugers adgang symbolsk småkager * /offentlige funktion endsession() {$- > stat = 0 $_session ["authstate"] = 0, setcookie ("access_token", "", 0); setcookie ("access_token_secret", "", 0)), initialization, nu er vi nødt til at tilføje nogle ting til vores, __construct(), en metode til at finde ud af, hvor autentificeringen medlemsstat ansøgningen er i på initialization.ligeledes, da vores kode bruger samling variabler, skal vi sikre, at mødet er begyndt med denne kode: //starte et møde, hvis man ikke eksistere, hvis (!session_id()) (session_start();}, den næste del, hvor vi fastsætter staten.medlemsstat begynder kl. 0; hvis der er småkager, der indeholder en adgang eller medlemsstat antages at være 2, ikke, at staten er fastsat til, authstate, samling variabel, hvis det eksisterer.her er koden: //bestemme autentificering status //default - 0 $- > state = 0; //2 (bekræftet) om småkagerne er fastsat, hvis (isset ($_cookie ["access_token"], $_cookie ["access_token_secret"])) ($- > state = 2) //andet nytteværdi opbevares i møde elseif (isset ($_session ["authstate"])) ($- > state = (int) $_session ["authstate"]}, hvis staten er 1, betyder det, at vi er i færd med at godkendelse.så kan vi gå videre og fortsætte processen på dette punkt: //, hvis vi er i færd med at autentificering, vi fortsætter, hvis ($- > state = = 1) ($- > auth();}, hvis staten er 2, vi bør kontrollere adgangen tegn.hvis autentificeringen svigter, skal denne kode godkender småkager og nulstiller stat: //kontrollere autentificering, clearing småkager, hvis det ikke elseif ($- > state = = 2 & &!$- > auth()) ($- > endsession();}, her er den nye konstruktøren med disse ændringer: /* * * sæt en ny twitterapp objekt * * @ param tmhoauth $tmhoauth en tmhoauth genstand med forbrugernes centrale og hemmelige * /offentlige funktion __construct (tmhoauth $tmhoauth) (//redde tmhoauth objekt $- > tmhoauth = $tmhoauth; //starte et møde, hvis man ikke eksistere, hvis (!session_id()) (session_start();} //bestemme autentificering status //default - 0 $- > state = 0; //2 (bekræftet) om småkagerne er fastsat, hvis (isset ($_cookie ["access_token"], $_cookie ["access_token_secret"])) ($- > state = 2) //andet nytteværdi opbevares i møde elseif (isset ($_session ["authstate"])) ($- > state = (int) $_session ["authstate"]} //, hvis vi er i færd med at autentificering, vi fortsætter, hvis ($- > state = = 1) ($- > auth();} //kontrollere autentificering, clearing småkager, hvis det ikke elseif ($- > state = = 2 & &!$- > auth()) ($- > endsession();}}, sender vi et fløjt, efter at alle adgangskode er afsluttet, kan vi tilføje en fælles funktion, at vores klasse.her er en metode til at sende en besked gennem twitter api: /* * * sende en tweet på brugernes vegne * * @ param snor $tekst tekst tweet * @ tilbage bool tweet med succes sendte * /offentlige funktion sendtweet ($tekst) (//begrænse snor til 140 tegn $tekst = substr ($tekst, 0, 140); //efter teksten til status /ajourføring metode $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("1 /status /update"), system ("status » = > $tekst) afkast ($- > tmhoauth - > svar [kode] = = 200)}, sendtweet(), metode accepterer en snor, begrænser det til 140 tegn, og så sender det i en efterfølgende anmodning om, at 1 /status /opdatering.dette mønster er temmelig fortrolig nu.,, fuldstændig twitterapp klasse, <?php klasse twitterapp {/* * * denne variabel har tmhoauth formål anvendes i hele klassen * * @ var tmhoauth genstand for tmhoauth klasse * /offentlige $tmhoauth; /* * * bruger twitter data * * @ var mange oplysninger om den nuværende autentificeret bruger * /offentlige $userdata; /* * * autentificering stat * * værdier: * - 0: ikke authed * - 1: anmodning om bevis opnået * - 2: adgang eller opnået (authed) * * @ var int den aktuelle autentificering * /beskyttede $; /* * * sæt en ny twitterapp objekt * * @ param tmhoauth $tmhoauth en tmhoauth formål med at forbruger centrale og hemmelige * /offentlige funktion __construct (tmhoauth $tmhoauth) (//redde tmhoauth objekt $- > tmhoauth = $tmhoauth; //starte et møde, hvis man ikke eksistere, hvis (!session_id()) (session_start();} //bestemme autentificering status //default - 0 $- > state = 0; //2 (bekræftet) om småkagerne er fastsat, hvis (isset ($_cookie ["access_token"], $_cookie ["access_token_secret"])) ($- > state = 2) //andet nytteværdi opbevares i møde elseif (isset ($_session ["authstate"])) ($- > state = (int) $_session ["authstate"]} //, hvis vi er i færd med at autentificering, vi fortsætter, hvis ($- > state = = 1) ($- > auth();} //kontrollere autentificering, clearing småkager, hvis det ikke lykkes, elseif ($- > state = = 2 & &!$- > auth()) ($- > endsession();) /* * * giver brugeren med twitter * * @ tilbage bool autentificering vellykket * /offentlige funktion auth() (//state 1 kræver få variable at eksistere, hvis ($- > state = = 1 &.; &!isset ($_get ["oauth_verifier"])) ($- > stat = 0) //1. trin: får en anmodning tegn, hvis ($- > state = = 0) (tilbagevenden $- > getrequesttoken();} //trin 2: få adgang tegn elseif ($- > state = = 1) {tilbage $- > getaccesstoken();} //trin 3: kontrollere adgangen symbolsk forrentning, $- > verifyaccesstoken();} /* * * opnå en anmodning tegn fra twitter * * @ tilbage bool falske, hvis anmodning ikke * /privat funktion getrequesttoken() (//sender anmodning om en anmodning eller $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("omen /request_token "," "), system (//over en variabel til at fastsætte den callback" oauth_callback = > $- > tmhoauth - > php_self())); hvis ($- > tmhoauth - > svar [kode] = = 200) (//- og opbevarer anmodning symbolsk $svar = $- > tmhoauth - > extract_params ($- > tmhoauth - > svar ["svar"]); $_session ["authtoken"] = $svar ["oauth_token"] $_session ["authsecret"] = $svar ["oauth_token_secret"]; //stat er nu 1 $_session ["authstate"] = 1; //omdirigerer brugeren til twitter til at tillade $url = $- > tmhoauth - > url ("oauth /tillader", ""). "? oauth_token = ".- svar ["oauth_token"] header ("sted".$url) udgang;} tilbage falske} /* * * få adgang tegn fra twitter * * @ tilbage bool falske, hvis anmodning mislykkedes * /privat funktion getaccesstoken() (//sætte anmodningen tegn og hemmelighed, vi har oplagret $- > tmhoauth - > ud ["user_token"] = $_session ["authtoken"] $- > tmhoauth - > ud ["user_secret"] = $_session ["authsecret"]; //sende anmodningen om adgang, symbolsk $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("oauth /access_token", ""), system (//- oauth_verifier modtaget fra twitter "oauth_verifier = > $_get [" oauth_verifier "]);hvis ($- > tmhoauth - > svar [kode] = = 200) (//få adgang tegn og opbevarer det i en småkage $svar = $- > tmhoauth - > extract_params ($- > tmhoauth - > svar ["svar"]); setcookie ("access_token" $svar ["oauth_token"], time() + 3600 * 24 * 30); setcookie ("access_token_secret" $svar ["oauth_token_secret"], time() + 3600 * 24 * 30); //stat er nu 2 $_session ["authstate"] = 2; //omdirigere bruger til at klare sidesten få variabler header ("sted".$- > tmhoauth - > php_self()); udgang;} tilbage falske} /* * * kontrollere gyldigheden af vores adgang symbolsk * * @ tilbage bool adgang symbolsk verificerede * /privat funktion verifyaccesstoken() {$- > tmhoauth - > ud ["user_token"] = $_cookie ["access_token"] $- > tmhoauth - > ud ["user_secret"] = $_cookie ["access_token_secret"]; //sende kontrol anmodning at teste adgangsnøgle $- > tmhoauth - > anmodning ("" $- > tmhoauth - > url ("1 /højde /verify_credentials"); //opbevarer brugerdata tilbage fra api $- > userdata = json_decode ($- > tmhoauth - > svar ["svar"]);//http 200 betyder, at vi var vellykket tilbagevenden ($- > tmhoauth - > svar [kode] = = 200)} /* * * se den aktuelle autentificering * * @ tilbage bool sandt, hvis staten er 2 (bekræftet) * /offentlige funktion isauthed() {tilbage $- > state = = 2) /* * * fjerne brugers adgang symbolsk småkager * /offentlige funktion endsession() {$- > stat = 0 $_session ["authstate"] = 0, setcookie ("access_token", "", 0); setcookie ("access_token_secret" ",", 0)} /* * * sende en tweet på brugernes vegne * * @ param snor $tekst tekst tweet * @ tilbage bool tweet med succes sendte* /offentlige funktion sendtweet ($tekst) (//begrænse snor til 140 tegn $tekst = substr ($tekst, 0, 140); //efter teksten til status /ajourføring metode $- > tmhoauth - > anmodning ("post", $- > tmhoauth - > url ("1 /status /update"), system ("status" = > $tekst) afkast ($- > tmhoauth - > svar [kode] = = 200)}}, vores anmodning, nu vi har en klasse, der tager sig af alle oauth opgaver, vi nu kan udvide det med funktioner specifikke for anvendelsen.dette omfatter evnen til at få, ændre, og brugerens avatar. vi vil udvide den twitterapp klasse med en twitteravatars klasse.start med følgende kode i en ny filen, l /twitteravatars. folkesundhedsprogrammet, er:, <?php klasse twitteravatars udvider twitterapp {/* * * vejen til vores midlertidige akter fortegnelse * * @ var snor vej opbevarer image filer * /offentlige $vej; /* * * det er gd 's image filtre, der er til rådighed i denne klasse * * @ var array associative række image filtre * /beskyttede $filtre = mængde (grayscale = > img_filter_grayscale, "negative" = > img_filter_negate, edgedetect = > img_filter_edgedetect, præget med "= > img_filter_emboss, sløret" = > img_filter_gaussian_blur "usikre" = > img_filter_mean_removal) /* * * sæt en ny twitteravatars objekt * * @ param tmhoauth $tmhoauth en tmhoauth genstand med forbrugernes centrale og hemmelige * @ param snor $vej vej opbevarer image filer (default "tmp") * /offentlige funktion __construct (tmhoauth $tmhoauth $sti = tmp ") (//kalder den forælder, klasse konstruktøren forældre: __construct ($tmhoauth); //red den vej, variable $- > sti = $vej;}}, som du kan se, er de også omfatter en $vej, ejendom, at pege på, hvor midlertidige image filer vil gå, en $filtre, ejendom med en række image filtre, og en udvidet konstruktøren med et parameter for at fastsætte vej.da vi er altoverskyggende den oprindelige konstruktøren har vi udtrykkeligt at kalde modervirksomhedens konstruktøren med forældre: __construct(),., nu kan vi tilføje vores metoder.,, at downloade, det er klart, at vi skal have mulighed for at downloade billeder for at manipulere med dem.her er en artsbetegnelse, download(), metode, der accepterer en url og returnerer de data, der på det sted.denne metode gør en grundlæggende krøller anmodning., * * * downloade data fra bestemte url * * @ param snor $url url at downloade * @ tilbage snor overførte data * /beskyttede funktion downloade ($url) ($ch = curl_init(); curl_setopt ($ch, curlopt_url $url); curl_setopt ($ch, curlopt_returntransfer, sande); $ret = curl_exec ($ch); curl_close ($ch); tilbage $ret;}, at finde ip - adresser, nu hvor vi kan downloade filer, vi skal finde sted af de sager, vi har brug for.der er to forskellige billeder, vi er interesserede i, standardstørrelse virksomhed beskrevet og den oprindelige fuldstørrelse image.så vil vi skabe en metode til at få hver enkelt url. at få standard mellemstore virksomhed beskrevet, ringer vi til brugerne /profile_image /: screen_name api - metode, som svarer til en 302 omdirigere til bestemte brugers avatar image.det betyder, url findes i stedet ned.her er denne metode: /* * * få adressen til standardstørrelse avatar * * @ tilbage snor url billedet fil * /beskyttede funktion getimageurl() (//anmodning brugerens "større" profil billede $- > tmhoauth - > anmodning ("" $denne - > tmhoauth - > url ("1 /brugere /profile_image /".$- > userdata - > screen_name) system ('screen_name = > $- > userdata - > screen_name "størrelse" = > "større"); hvis ($- > tmhoauth - > svar ["kode". = = 302) (//direkte url er i stedet hoved tilbage $- > tmhoauth - > svar ["personer"] ["sted"]} kaster ny undtagelse ("fejl at billede");}, bemærke, at vi er ved at få anmodning tmhoauth, passerer, screen_name og størrelse, parametre og derefter vende tilbage til indholdet af den placering, header. er der ingen api - metode til at få fuld størelse billede, så vores næste metode, vi snyder lidt og redigere url.de bruger data indeholder en, profile_image_url, område, som viser, at noget som avatar_normal jpg, og det oprindelige billede kan findes på, avatar.jpg uden suffix.denne metode bliver url, fjerner den størrelse suffiks og returnerer den modificerede http: /* * * få adressen til fuldstørrelse avatar * * @ tilbage snor url billedet fil * /beskyttede funktion getoriginalimageurl() (//- normal størrelse avatar $url = $- > userdata - > profile_image_url; //redde udvidelse til senere $ext = strrchr ($url,. "); //bånd" _normal "suffiks og tilføje tilbage udvidelse tilbage substr ($url, 0, strrpos ($url," _ ").$ext.}, læser billeder, nu hvor vi kan lokalisere og downloade billeder, vi har brug for en måde at læse dem.vi bruger gd 's bibliotek for at manipulere med billeder, så denne metode vil omvende de rå billeddata i gd image ressource., * * * konvertere rå billeddata til gd ressource * * @ param snor $data binære billeddata til at analysere * @ tilbage ressource en gd image ressource - id * /beskyttede funktion readimage ($data) (//læse i det oprindelige billede $src = imagecreatefromstring ($); hvis (!$src) {kaster ny undtagelse ("fejl ved billede")) //- dimensioner $bredde = imagesx ($src); $højde = imagesy ($src); //skabe en blank sande farver billede af samme størrelse, $img = imagecreatetruecolor ($bredde, højde /$); /kopiere originalen til denne nye lærred imagecopy ($img, $src, 0 0, 0 0, $bredde, højde, $); //kasser kilde image imagedestroy ($src); tilbage $img;}, til at beskrive, hvad der sker over:,, billeddata er ændret en gd ressource med, imagecreate
at skabe en twitter oauth anvendelse
Next Page:yql caching, og regelmæssigt udtryk