Windows Phone Conectarea cu Facebook

În acest tutorial, vom vorbi despre cum să interacționăm cu API-ul Facebook și despre toate instrumentele de care aveți nevoie pentru a vă conecta cu acesta. Mai precis, aplicația pe care o vom face va putea să se conecteze la contul utilizatorului utilizatorului și să își actualizeze statutul. Să începem!


Pasul 1: Crearea proiectului Visual Studio

Mai întâi de toate, trebuie să creați un nou proiect cu Visual Studio. Vom construi o aplicație simplă, deci selectați opțiunea "Windows Phone App":


Dacă folosiți Visual Studio 2012 cu noul SDK WP8, vi se va cere versiunea OS Windows Phone Target. În acest caz, selectați doar sistemul de operare 7.1.


Pasul 2: Adăugarea interfeței utile

Cu proiectul deja creat, deschideți fișierul "MainPage.xaml" dacă acesta nu este deja deschis și modificați caseta text a aplicației implicite și a numelui paginii:

    

Acum, în grila noastră ContentPanel, vom adăuga două rânduri, câte unul pentru o casetă text în care utilizatorul va introduce noua stare, iar celălalt pentru butonul pentru a trimite starea:

      

Și apoi adăugați o TextBox pe primul rând cu numele de "Mesaj", și un buton de pe al doilea:

       

În final, ar trebui să aveți acest lucru:


Pasul 3: Crearea de conturi pentru dezvoltatori

Facebook are un API foarte cuprinzător pentru a permite interacțiunea dintre aplicații și site. API permite aplicației să se conecteze și să interacționeze cu contul FB al utilizatorului.

Pentru a conecta aplicația noastră la Facebook, va trebui să vă înregistrați ca dezvoltator Facebook. Pentru a crea un cont de dezvoltator Facebook, accesați site-ul Web al dezvoltatorului Facebook,
apoi conectați-vă cu contul dvs. Facebook sau creați unul dacă nu aveți unul deja. După ce v-ați conectat deja, faceți clic pe butonul "Înregistrare" și urmați instrucțiunile.


Pasul 4: Înregistrarea unei aplicații noi

Acum, creați o aplicație nouă accesând meniul Aplicații, apoi selectați butonul "Creați aplicația nouă".

După ce ați creat aplicația, veți vedea pagina Setările aplicației și pe ea un număr de identificator de aplicație / API.

Copiați acest număr, reveniți la proiect și în interiorul fișierului "MainPage.xaml.cs", creați un nou șir constant constant pe partea de sus a constructorului dvs.:

 constrângere privată const FBApi = "CHEIE API DUMNEAVOASTRĂ AICI"; // Constructor public MainPage () InitializeComponent (); 

Pasul 5: Alegerea aplicației Facebook C # SDK

Facebook are cateva SDK-uri excelente pentru iOS si Android, dar din pacate nici unul pentru WP7, asa ca pentru a conecta Facebook la un WP7 App, avem doua optiuni: (1) sa creem toate apelurile manual, sau (2) C # SDK, un SDK non-oficial creat special pentru aplicațiile C #.

Pentru acest tutorial, vom folosi C # SDK. Are toate metodele din API-ul Facebook deja integrate, astfel încât să ne facă mult mai ușor sarcina!


Pasul 6: Descărcarea SDK

Acest set SDK este disponibil numai prin NuGet, deci în cazul în care Visual Studio nu include managerul de pachete NugGet,
va trebui să îl descărcați de pe pagina de pornire NuGet.
Pentru a descărca pachetul, deschideți Consola Manager pachet din Visual Studio (Instrumente> Manager pachet de biblioteci> Consola Manager pachet) și introduceți următoarea comandă:Instalați pachetul Facebook . În cazul în care aveți probleme cu versiunea descărcată, încercați să utilizați această comandă: Instalare-Pachet Facebook -version 6.0.24


Pasul 7: Adăugați aplicația SDK FB în aplicația dvs.

Acum, când avem SDK, o vom adăuga la proiectul nostru. Adăugați un nou import în fișierul "MainPage.xaml.cs":

 folosind Facebook;

Pasul 8: Adăugarea unui browser

Pentru ca un utilizator să se poată conecta la Facebook, el trebuie să ne dea mai întâi accesul și permisiunea pentru contul său FB. Acest lucru se face prin intermediul paginii web Facebook și, prin urmare, trebuie să adăugăm un browser web în aplicația noastră. Browserul ar trebui să acopere cea mai mare parte a paginii, așa că inițial va fi restrâns, iar apoi se va schimba pentru a fi vizibil doar atunci când utilizatorul trebuie să se autentifice. În fișierul "MainPage.xaml", adăugați un nou WebBrowser chiar sub ContentPanel:

       

Pasul 9: Conectarea cu Facebook

Cu totul setat corect, putem începe să codificăm aplicația noastră. Creați o nouă variabilă FacebookClient și denumiți-o doar client. Aici vor fi realizate toate conexiunile. De asemenea, inițiați variabila din interiorul constructorului:

 clientul FacebookClient particular; // Constructor public MainPage () InitializeComponent (); client = nou FacebookClient (); 

Pasul 10: Adăugarea evenimentului Click

Pentru a posta ceva, utilizatorul trebuie să facă clic pe butonul "Postare". Să mergem și să adăugăm un eveniment clic pe acel buton:

 

Pe partea de cod, atunci când utilizatorul face clic pe buton, trebuie să se conecteze la Facebook și să autorizeze acceptarea aplicației noastre. Pentru acest proces, trebuie să facem vizibilitatea browserului și să navigăm la o adresă URL pe care clientul o va da, dar înainte de aceasta trebuie să trimitem câțiva parametri inițiali:

 private void PostClicked (expeditor obiect, RoutedEventArgs e) // Parametri client var parametri = nou Dicționar(); parametrii ["client_id"] = FBApi; parametrii ["redirect_uri"] = "https://www.facebook.com/connect/login_success.html"; parametrii ["answer_type"] = "token"; parametrii ["afișare"] = "atingeți"; // Domeniul de aplicare este ceea ce ne dă accesul la datele utilizatorilor, în acest caz // vrem doar să publicăm pe parametrii lui de perete ["scope"] = "publish_stream"; Browser.Visibility = System.Windows.Visibility.Visible; Browser.Navigate (client.GetLoginUrl (parametrii)); 

Dacă executați codul dvs. chiar acum și faceți clic pe butonul Post, browserul ar trebui să apară, afișând pagina de conectare Facebook:


Pasul 11: Adăugarea unui eveniment de navigare

După ce utilizatorul sa logat pe Facebook, navigatorul va fi navigat la o adresă URL care va conține indicativul nostru de acces pentru apelurile API. Odată ce o recuperăm, trebuie să o atribuim clientului nostru. Un lucru care trebuie luat în considerare este că există multe pagini la care navigatorul poate naviga (parolă greșită, utilizatorul a respins aplicația etc.), așa că trebuie să încercăm să obținem simbolul doar atunci când suntem siguri că suntem pe pagina corectă.

Adăugați evenimentul navigat în browserul web:

 

Apoi, adăugați următoarele linii la manipulatorul evenimentului:

 privat void BrowserNavitaged (expeditor obiect, System.Windows.Navigation.NavigationEventArgs e) FacebookOAuthResult oauthResult; // Asigurați-vă că URL-ul are de fapt tokenul de acces dacă (! Client.TryParseOAuthCallbackUrl (e.Uri, out oauthResult)) retur;  // Verificarea faptului că utilizatorul a acceptat cu succes aplicația noastră, în caz contrar arăta doar eroarea dacă (oauthResult.IsSuccess) // Rezultatul procesului client.AccessToken = oauthResult.AccessToken; // Ascunde browserul Browser.Visibility = System.Windows.Visibility.Collapsed; Postează pe perete();  altfel // Process Error MessageBox.Show (oauthResult.ErrorDescription); Browser.Visibility = System.Windows.Visibility.Collapsed; 

Pasul 12: Adăugarea unei metode de postare

Acum, că avem acces, putem continua și de fapt posta pe peretele utilizatorului. Creați o nouă metodă privată privată numită postToWall și adăugați următoarele linii:

 private void PostToWall () var parametri = nou dicționar(); parametrii ["mesaj"] = Message.Text; client.PostAsync (parametrii me / feed); 

Singurul parametru pe care trebuie să-l trimitem la acest apel este mesajul pe care îl vom posta pe peretele utilizatorului. Mesajul pe care îl vom trimite va fi textul din bara de text numită "Mesaj". Mesajul va fi postat asincron, astfel încât evenimentul PostCompleted va fi sunat odată ce sarcina este terminată, prin urmare nu este nevoie să adăugăm un handler de evenimente pentru acesta.


Pasul 13: Operatorul de evenimente postcompletate

Deoarece vrem doar să adăugăm un handler de evenimente o dată, îl vom adăuga pe constructor, imediat după inițializarea clientului nostru. În interiorul dispozitivului de control, verificați dacă postul a fost finalizat cu succes sau dacă au existat erori în timpul operațiilor, apoi notificați-i pe utilizator:

 // Constructor public MainPage () InitializeComponent (); client = nou FacebookClient (); client.PostCompleted + = (o, args) => // Verificarea erorilor dacă (args.Error! = null) Dispatcher.BeginInvoke (() => MessageBox.Show (args.Error.Message));  altceva Dispatcher.BeginInvoke (() => MessageBox.Show ("Mesajul postat cu succes")); ; 

Pasul 14: Testarea codului

Cu acest cod, aplicația noastră ar trebui să poată posta deja un mesaj prin contul de utilizator al utilizatorului Facebook.

Rulați aplicația în emulator, încercați să postați orice mesaj de test dorit și, la final, ar trebui să primiți un mesaj care să vă spună: "Mesajul a fost postat cu succes".

Acum, deschideți contul Facebook pe un browser web și ar trebui să vedeți mesajul pe care tocmai l-ați postat:

Felicitări! Acum aveți o aplicație capabilă să vă conectați la Facebook, dar mai sunt câteva lucruri pe care le putem îmbunătăți. De exemplu, am putea încerca să salvăm tokenul de acces, astfel încât utilizatorii să nu fie nevoiți să se autentifice de fiecare dată când deschid aplicația.


Pasul 15: Salvarea accesului la Token

Vom salva jetonul pentru setările aplicației, dar pentru a face acest lucru, trebuie să importem mai întâi biblioteca IsolatedStorage:

 utilizând System.IO.IsolatedStorage;

Cu această bibliotecă putem acum să continuăm și să creăm metoda:

 privat void SaveToken String token // Dacă este prima salvare, creați cheia pe ApplicationSettings și salvați tokenul, în caz contrar modificați doar tasta if (IsolatedStorageSettings.ApplicationSettings.Contains ("token")) IsolatedStorageSettings.ApplicationSettings. Adăugați ("token", token); altcevaSetareSetareSettings.ApplicationSettings ["token"] = token; IsolatedStorageSettings.ApplicationSettings.Save (); 

Pasul 16: Preluarea cu jetonul salvat

Acum avem nevoie de token din IsolatedStorage:

 privat GetToken () // Dacă nu există nici un Token în memorie, întoarceți doar null, în caz contrar returnați tokenul ca string dacă (! IsolatedStorageSettings.ApplicationSettings.Contains ("token")) întoarce null; altceva returneazăSetareSetări.ApplicareSettings ["token"] ca șir; 

Pasul 17: Logarea cu jetonul salvat

Cu aceste două metode, putem recupera tokenul și îl putem atribui clientului nostru de fiecare dată când aplicația este deschisă:

 // Constructor public MainPage () InitializeComponent (); client = nou FacebookClient (); client.PostCompleted + = (o, args) => // Verificarea erorilor dacă (args.Error! = null) Dispatcher.BeginInvoke (() => MessageBox.Show (args.Error.Message));  altceva Dispatcher.BeginInvoke (() => MessageBox.Show ("Mesajul postat cu succes")); ; // Verificați pentru jetonul salvat dacă (GetToken ()! = Null) client.AccessToken = GetToken (); 

Pasul 18: Verificarea jetoanelor expirate

Un alt lucru care trebuie luat în considerare este faptul că utilizatorul poate respinge permisiunile aplicației noastre, așa că trebuie să detectăm acest lucru și să solicităm din nou permisiuni. Această detectare ar trebui făcută pe mâna noastră postcompletată, deoarece acolo Facebook ne va anunța o problemă cu postarea noastră. Adăugați următoarele linii la postul nostru PostCompleted:

 client.PostCompleted + = (o, args) => // Verificarea erorilor dacă (args.Error! = null) // Eroare de autorizare dacă args.Error este FacebookOAuthException) Dispatcher.BeginInvoke (() => MessageBox .Show ("Eroare de autorizare")); // Eliminați tokenul propriu deoarece nu mai funcționează. SaveToken (null); client.AccessToken = null;  altceva Dispatcher.BeginInvoke (() => MessageBox.Show (args.Error.Message));  altfel Dispatcher.BeginInvoke (() => MessageBox.Show ("Mesajul postat cu succes")); ;

Pasul 19: Modificați butonul din spate

Ca ultimul pas, trebuie să oferim utilizatorului opțiunea de a închide browser-ul ori de câte ori doriți.
Această acțiune ar trebui să se acorde butonului din spate, așa că trebuie să modificăm evenimentul pentru a obține acest lucru.

Adăugați următoarea metodă la codul dvs.:

 Protected override void OnBackKeyPress (System.ComponentModel.CancelEventArgs e) // Dacă browserul este vizibil, ascundeți-l și anulați evenimentul de navigare dacă (Browser.Visibility == System.Windows.Visibility.Visible) Browser.Visibility = System.Windows .Visibility.Collapsed; e.Cancel = true;  base.OnBackKeyPress (e); 

Pasul 20: Produsul final

Testați aplicația încă o dată, acum aveți o aplicație Facebook pe deplin funcțională!


Unde să mergeți de aici

Facebook nu are doar rolul de a vă actualiza statutul. Există multe alte lucruri pe care le puteți adăuga la aplicația dvs., cum ar fi partajarea fotografiilor, trimiterea de recomandări pentru aplicații prietenilor etc. Facebook C # SDK oferă multe posibilități de integrare în Facebook. Pentru a afla mai multe despre acest lucru, vizitați pagina web a acestora și începeți să lucrați pentru a face aplicația mai socială!

Cod