, hvordan giver brugerne med facebook forbinder,,,,, 12,,,,,,,,, 71,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss.,, på det seneste, der har været noget af en slurk dovne registrering.det viser sig, at de mindre brugere har til at tænke, de højere omregningskurserne er!sikke en tanke.hvis alle synes at have en profil på facebook, hvorfor ikke tilføje ét klik bruger registrering?skal jeg vise dig, hvordan man gør det i dag.,,,, trin 1.den fælde, mysql tabel, lad os begynde med at oprette en database med tabel. skabe tabel "brugere" ("id" int (10) ikke underskrevet, ikke er auto_increment, er oauth_provider er varchar (10), er oauth_uid er tekst, "brugernavn er tekst, primære nøgle (id) - motor) = myisam misligholdelse charset = latin1;, ganske enkelt: vi vil starte en tabel for oplysning af brugeren med id, navn, fornavn og efternavn, url til brugerens billede, og registreret.også, vi er at tilføje en, oauth_provider, og oauth_uid, områder, for at skelne mellem forskellige tredjepart åbne autentificering, protokoller og deres identifikatorer.for eksempel, lad os sige, at der i næste uge, du beslutter, at det er en god idé at også lade twitter - brugere.rolig, sæt en anden værdi for oauth, udbyder, og undgå overlapning med oauth, nævnte værdier. de facebook - app, lad os begynde med at skabe en ny ansøgning.giv det et navn og acceptere de vilkår og betingelser.næste, tag den, api - nøgle, og hemmeligt, basale tab, som vist nedenfor.,,, på lærredet, regning, der både, lærred url, og efterfølgende tillader omdirigere url, til din localhost og vej, som det vil processen - - noget somhttp://localhost.com/login_facebook.php?,.bemærk den spørgsmålstegn ved udgangen og område, og begge er nødvendige af facebook.bare din vært, fil med en gyldig domænenavn.,,, - tab, der forbinder url til samme værdi, og fastsætte, localhost.com (eller det, du bruger) som grundlag domæne.,,, spar, downloade klient bibliotek, og trække, facebook.php i, src, dir til et nyt register oprettet i roden, trin 2.de opkald til autentificering strøm af tre trin:, den lokale manuskript, skaber en url anmode brugeren om tilladelse, facebook vender tilbage til gulvet url, der er angivet med en parameter, få parameter autentificerer samling, lad os lave en hurtig test, før registrering og login,vi kræve bibliotek kræver ("facebook. folkesundhedsprogrammet");skabe facebook objekt $facebook = nye facebook - system ("appid = > your_app_id", "hemmelige" = > your_app_secret "," cookie "= > sande)); #, lad os se, om vi har en aktiv samling $. = $facebook - > getsession(); hvis (!tom ($))) (# aktive samling, lad os prøve at få den bruger - id (getuser()) og bruger - info (api - > '/') prøve ($nævnte = $facebook - > getuser(). $bruger = $facebook - > api '/mig');} fangst (undtagen $e) {} hvis (!tom ($bruger)) (# bruger - info, okay?lad os trykke det her vil vi tilføje login og registrering af rutiner) print_r ($bruger);} andre (# for testning, hvis der var en fejl, lad os dræbe manuskriptet dø (", det var en fejl.");) andet (# er der ingen aktive samling, - er at skabe en $login_url = $facebook - > getloginurl(); header ("sted". $login_url)}, gå til http: //localhost. kom /login_facebook. php, og lad os se, hvad der sker.hvis du bliver omdirigeret til facebook og anmodede om, at vi er på rette spor.,,, men der er to problemer.for det første: hvis du er blevet omdirigeret til facebook, men det er en fejl, der kan være en manglende værdi i konfiguration.gå tilbage til din applikationer og kontrollere både forbinde lærred og tekniske vurderingsorganer og sørge for, at de områder, der er okay, som beskrevet ovenfor.der kan være en anden sag, hvor ser du en fejl, som "uudnyttede curlexception: 60: ssl certifikat problem, kontrollere, at ca cert er ok." dette sker på grund af krøller indstillinger.du bliver nødt til at åbne, facebook. php, finder den makerequest() metode, og i funktion, finder denne linje: $vælger = selvstændig: $curl_opts; umiddelbart efter det, tilføje: $vælger [curlopt_ssl_verifypeer] = falske, jeg hader at biblioteker, men jeg har ikke fundet en anden måde.lad os fortsætte med bruger registrering.jeg har også tilføjet en prøve /fangstopgørelse, for hvis der er et gammelt sessionsnøgler i få params i url, manuskript vil dø med en forfærdelig fejl.,, trin 3.registrering og godkendelse, vil vi næste arbejde med mysql.bemærk venligst, at jeg ikke vil gennemføre en data - sanitizer, da jeg ønsker at beholde den kode, som kort og den opgave, som muligt.vær sød at holde det i tankerne: altid sterilisere din data. først, lad os forbinde til databasen. mysql_connect ('localhost "," your_username "," your_password '); mysql_select_db ('your_database), lad os arbejde på $), betinget af, at i tilfælde af, at vi har et møde. vi har en aktivmøde; lad os se, om vi har allerede registreret bruger $forespørgsel = mysql_query ("vælg * fra brugere, hvor oauth_provider =" facebook og oauth_uid = ".$bruger ['id ']); $resultat = mysql_fetch_array ($spørgsmål); #, hvis ikke, så lad os tilføje det til databasen, hvis (tomme ($resultat)) ($forespørgsel = mysql_query ("indsætte i brugere (oauth_provider, oauth_uid, brugernavn) - værdier ('facebook, {$bruger ['id"]), ($bruger ['name']}) "); $forespørgsel = msyql_query (" vælg * fra brugere, hvor id = ".mysql_insert_id()); $resultat = mysql_fetch_array ($søgning)}, bemærk, at jeg stiller spørgsmålstegn ved database efter, facebook, som, oauth_provider, og det er generelt en god idé, hvis du ønsker at acceptere andre oauth leverandører (som twitter, google konti åbne id osv.), og en, oauth_uid,, da det er identifikator udbyderen giver sine brugerkonti.det, oauth_provider, område kunne potentielt føre til dårlige resultater, hvis vi lader det som en tekst, inden type.som sådan, er den bedste løsning, at det til en enum type. vi har nu en $resultat, var med værdier ved fra databasen.lad os nu tilføje nogle møder.tilføje denne linje i begyndelsen af deres manuskript. session_start(); efter tomme ($resultat), betinget, vedlægges følgende: hvis (!tom ($bruger)) (#...hvis (tomme ($resultat)) (#...}- lad os møde værdier $_session ['id '] = $resultat ['id'] $_session ['oauth_uid '] = $resultat ['oauth_uid'] $_session ['oauth_provider '] = $resultat ['oauth_provider'] $_session ['username '] = $resultat ['username']}, som giver det ikke meget mening at bekræfte en bruger, der allerede er registreret i, lige under, session_start(), linje, tilføje: hvis (!tom ($_session)) (header ("beliggenhed: hjem. folkesundhedsprogrammet")), og de manuskripter, der kræver godkendelse, bare tilføje:, session_start(); hvis (!tom ($_session)) (header ("beliggenhed: login_facebook. folkesundhedsprogrammet")), og hvis du vil vise brugernavn, adgang til det som en vifte., echo "velkommen".$_session ['username ']eller...echo "velkommen".! tom ($_session)?$_session ['username ']: "gæst";,, trin 4.yderligere metoder, facebook har et væld af forbinder elementer, men det her er fire, som jeg har fundet til at være den mest nyttige, arv, metoder, jeg manglede noget, men fql virker mere fleksibelt og let end figur api - grænseflade.heldigvis, facebook stadig lader udviklere bruger det, selv med det nye bibliotek, det har ændret sig en smule. hvis du vil have den brugeridentitet, fornavn, efternavn, groft tildannet virksomhed beskrevet for brugeren billede, den største bruger billede, der er til rådighed, og hans eller hendes køn, kan du bruge den, users.getinfo, metode. $nævnte = $facebook - > getuser(). $api_call = system (metoden "= >" brugere. getinfo "," uids = > $nævnte "områder" = > nævnte, first_name, last_name, pic_square, pic_big, køn). $users_getinfo = $facebook - > api ($api_call), kan du se den fuldstændige liste over områder, der er til rådighed for brugerne. getinfo. er det muligt at nå det samme resultat ved hjælp af fql. $nævnte = $facebook - > getuser(). $fql_query = system ("metode" = > fql. query "," spørgsmål "= > særligt nævnte, first_name, last_name, pic_square, pic_big, sex af brugeren, hvor nævnte =".$nævnte); $fql_info = $facebook - > api ($fql_query), her er listen over de tabeller, der er tilgængelige med fql samt de områder, der er til rådighed for tabel brugere. udvidede tilladelser, facebook er ansøgninger med en interaktion med brugerens data - så længe det er tilladt.med den gamle api, bevilling af yderligere tilladelser udelukkende var til rådighed for javascript sdk (selv om jeg ikke er helt sikker).med den nye api - kan vi nemt omdirigerer brugeren til en tilladelse dialog på facebook, og vende tilbage til vores hjemmeside efter adgang er meddelt eller nægtet. i det følgende eksempel, vi vil omdirigere en bruger til at tillade stillinger status opdateringer, fotos, video, og konstaterer, at brugeren er ægte, e - mail - adresse, fødselsdag. og adgang til billeder og video. $nævnte = $facebook - > getuser();req_perms er en comma separated liste over de tilladelser, der er nødvendige for $url = $facebook - > getloginurl (array ('req_perms = > e - mail -, user_birthday, status_update, publish_stream, user_photos, user_videos')); header ("beliggenhed: $url} {"), her er en fuld liste af tilladelser.bemærk, at du kan angive såvel url til direkte at hvis brugeren accepterer og url omlægges, hvis brugeren benægter.fordelingsnøglen for disse mange elementer, og cancel_url, hhv.her er et kort eksempel: $url = $facebook - > getloginurl (array ('req_perms = > e - mail - "," næste "= > http: //////////////localhost. kom /tak. folkesundhedsprogrammet, cancel_url = > http://localhost.com/sorry.php')) og, hvis den ikke er angivet, misligholdelse er den anmodende manuskript placering.,,, - kontrol for udvidet tilladelser, da brugerne let kan tilbagekalde tilladelserne, ansøgningen bør altid kontrollere, om et givet tilladelse før anvendelse, specielt hvis det handler om at offentliggøre noget.vi bliver nødt til at bruge de nedarvede api, som det ser ud til, at det ikke er gennemført fuldt ud, med den nye endnu. $nævnte = $facebook - > getuser();users.hasapppermission $api_call = system (metoden "= >" brugere. hasapppermission, nævnte "= > $nævnte" ext_perm = > publish_stream. $users_hasapppermission = $facebook - > api ($api_call); print_r ($users_hasapppermission), ext_perm, vil kun støtte den gamle liste over tilgængelige tilladelser. offentliggørelse af muren, lad os lægge noget til muren efter kontrol de bruger den, publish_stream, tilladelse, #. lad os se, om brugeren har adgang til udstationering i wall $api_call = system (metoden "= > users.hasapppermission, nævnte "= > $nævnte, ext_perm = > publish_stream. $can_post = $facebook - > api ($api_call); hvis ($can_post) (# efter det!$facebook - > api ("/". $nævnte. /foder "," post ", system ('message = > at hilse fra min facebook - app. '); echo 'udstationerede! ";) andet (dør ('permissions krævede! ");), hovedsagelig gør vi en api - ring til /< user_id > /foder, ved hjælp af post - metode (andet argument) og et system, som et tredje argument for de oplysninger, der skal sendes.i dette tilfælde er det tredje argument støtter besked, link, billede, beskrive, navn og beskrivelse.her er koden: $facebook - > api ("/". $nævnte. /foder "," post ", system (" budskab "= >" budskab "," navn "= > navnet", "beskrivelse" = > "betegnelsen", "legende" = > "post", "foto" = > http: //////////////i.imgur. kom /yx3q2. men heller ikke dér er menneskene sikre "," sammenhæng "= > http://net.tutsplus.com/"), her er, hvad der er udstationeret.,,, nogle supplerende oplysninger, du skal vide:, brugerne let kan tilbagekalde tilladelser med to klik i hans eller hendes væg.du burde stærkt test, hvad der vil ske, hvis en bruger tilbagekaldt en eller flere tilladelser, som er nødvendige for korrekt funktion af deres websted, eller hvis ansøgningen er fuldstændig fjernet.det er vigtigt, i applikationer, du kan fjerne anvendelse fuldt ud ved at klikke x på den rigtige side. du kan fjerne tilladelser individuelt i ydet supplerende tilladelser, punkt. 5.konklusion og facebook er autentificering kapacitet er meget nyttig, da så mange mennesker er på facebook i disse dage, bruger det som den eneste metode til godkendelse i stedet anbefales ikke.hvad med dem, der ikke har facebook konti?har de ikke adgang til din ansøgning?tak for det!,
hvordan giver brugerne med facebook forbinder
Previous:codeigniter fra bunden: sikkerhed
Next Page:magento for designere: del 5