Denne plugin brukes for å koble til Facebook API. Før du begynner å integrere Facebook, må du opprette Facebook-app her. Du vil lage web app og deretter hoppe hurtigstartskjermen. Deretter må du legge til webområdet plattform på Innstillinger
side. Du kan bruke følgende kode i URL-området mens i utvikling
http:. //Localhost: 8100 /
Etter at du må legge til Gyldig OAuth omdirigere URI
på Innstillinger /avansert
side. Bare kopiere de følgende to urls.
http://www.facebook.com/connect/login_success.html
http://localhost:8100/oauthcallback.html
Installing Facebook Plugin
Vi gjorde alle trinnene ovenfor for å takle noen problemer som ofte dukker opp når du bruker denne plugin. Denne plugin er vanskelig å sette opp, fordi det er mange skritt involvert og dokumentasjon dekker ikke alle av dem. Det er også noen kjente kompatibilitetsproblemer med andre Cordova plugins så vi vil bruke Teleric verifisert plugin
versjon i vår app. Vi vil starte med å leseren plattform installere vår app fra ledeteksten
C:. \\ Users \\ Brukernavn \\ Desktop \\ MyApp> ionisk plattform add leseren
Neste vi trenger å gjøre er å legge root element på toppen av body
koden i index.html
index.html
. & lt; div id = "fb-root" & gt; & lt; /div & gt;
Nå vil vi legge til Cordova Facebook plugin til vår app. Du må endre APP_ID Hotell og APP_NAME
å matche Facebook-applikasjonen du opprettet før
C:. \\ Users \\ Brukernavn \\ Desktop \\ MyApp> Cordova -d plugin legge http: //github.com/Telerik-Verified-Plugins/Facebook/--variable APP_ID = "123456789" --variable APP_NAME = "FbAppName"
Nå åpner index.html Hotell og legge til følgende kode etter kroppen
tag. Igjen må du sørge for at AppID Hotell og versjon
er samsvar Facebook-applikasjonen du opprettet. Dette vil sikre at Facebook SDK er lastet asynkront uten å blokkere resten av programmet
index.html
. & Lt; script & gt; window.fbAsyncInit = function () {FB.init ({AppID: '123456789', Xfbml: true, versjon: 'v2.4'}); }; (funksjon (d, s, id) {var js, FJS = d.getElementsByTagName (s) [0]; if (d.getElementById (id)) {return;} js = d.createElement (s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore (JS, FJS);} (dokument, 'script', 'facebook-jssdk')); & lt; /script & gt;
Vinkel Tjenesten
Siden vi installerte alt vi trenger for å lage tjeneste som vil være vår tilknytning til Facebook. Disse tingene kan gjøres med mindre kode inne kontrolleren, men vi prøver å følge de beste praksis, slik at vi vil bruke Vinkel service. Følgende kode viser hele tjenesten. Vi vil forklare det senere.
services.js
.service ('Auth', funksjon ($ q, $ ionicLoading) {this.getLoginStatus = function () {var Utsett = $ q.defer ( ); FB.getLoginStatus (funksjon (respons) {if (response.status === "koblet") {console.log (JSON.stringify (respons));} else {console.log ("Ikke innlogget"); }}); returnere defer.promise;} this.loginFacebook = function () {var Utsett = $ q.defer (); FB.login (funksjon (respons) {if (response.status === "koblet") { console.log (JSON.stringify (respons));} else {console.log ("Ikke innlogget!");}}); returnere defer.promise;} this.logoutFacebook = function () {var utsette = $ q .defer (); FB.logout (funksjon (respons) {console.log ('Du er logget ut!');}); returnere defer.promise;} this.getFacebookApi = function () {var Utsett = $ q. utsette (); FB.api ("? meg /felt = id, e-post", [], funksjon (respons) {if (response.error) {console.log (JSON.stringify (response.error)); } Else {console.log (JSON.stringify (respons)); }}); returnere defer.promise; }});
I ovennevnte tjeneste skaper vi fire funksjoner. Tre første er selvforklarende. Den fjerde funksjonen brukes for å koble til Facebook grafen API. Det vil returnere id Hotell og e
fra Facebook-bruker. Vi skaper løfte objekter å håndtere asynkrone Javascript-funksjoner. Nå må vi skrive vår controller som vil kalle disse funksjonene. Vi vil kalle hver funksjon separat for bedre forståelse, men vil du sannsynligvis trenger å blande noen av dem sammen for å få ønsket effekt.
Controller Kode
.controller ('MyCtrl', funksjon ($ omfang, Auth , $ ionicLoading) {$ scope.checkLoginStatus = function () {getLoginUserStatus ();} $ scope.loginFacebook = function (brukerdata) {loginFacebookUser ();}; $ scope.facebookAPI = function () {getFacebookUserApi ();} $ scope.logoutFacebook = function () {logoutFacebookUser ();}; funksjon loginFacebookUser () {return Auth.loginFacebook ();} funksjon logoutFacebookUser () {return Auth.logoutFacebook ();} funksjon getFacebookUserApi () {return Auth.getFacebookApi ( );} funksjon getLoginUserStatus () {return Auth.getLoginStatus ();}})
Du lurer kanskje på hvorfor ikke vi har kommet Auth
tjeneste direkte fra funksjonsuttrykk (første fire funksjoner). Grunnen til dette er at du sannsynligvis vil legge litt mer oppførsel etter at Auth funksjonen er returnert. Du kan sende noen data til databasen, endre rute etter innlogging etc. Dette kan enkelt gjøres ved hjelp av Javascript da ()
metode for å håndtere alle asynkrone operasjoner i stedet for callbacks.
Nå trenger vi å tillate brukere å samhandle med app. Vår HTML vil inneholde fire knapper for å ringe fire funksjoner vi opprettet
HTML kode
. & Lt; knappen class = "button" ng-klikk = "loginFacebook ()" & gt; LOG IN & lt; /knapp & gt; & lt -knappen class = "button" ng-klikk = "logoutFacebook ()" & gt; LOGG UT & lt; /knapp & gt; & lt; knappen class = "button" ng-klikk = "checkLoginStatus ()" & gt; SJEKK & lt; /knapp & gt; & lt; knappen class = "button" ng-klikk = "facebookAPI ()" & gt; API & lt; /knapp & gt;
Når brukeren trykk LOGG INN
knappen facebook vises. Brukeren vil bli omdirigert til app etter innlogging er vellykkede. Anmeldelser