2011-12-24 15 views
5

Widziałem wiele dokumentacji na temat integracji stron internetowych ASP .NET i Facebooka, ale nie znalazłem prostego przykładu, nawet używając C# SDK na Facebooku.Autoryzacja strony ASP.NET z Facebookiem

Wszystko, czego chcę, to przykład "zaloguj się na Facebooku" i uzyskać podstawowe informacje o użytkowniku (takie jak imię i nazwisko, adres e-mail i zdjęcie).

Czy możecie mi pomóc?

Wielkie dzięki!

+1

Choć wydaje się to jak jakiś powtórzyć podstawowe pytanie, to bardzo prawdziwe, nawet gdy byłem rozwijanie coś nie mogłem znaleźć żadnych godnej przykłady i widziałem wszystkie rodzaje różnią koduj wszystkie posty na blogu. – gideon

Odpowiedz

9

jak mówisz using Facebook C# SDK, to tutaj jest droga, a niektóre kodu dla aplikacji płótnie:

1- Tworzenie aplikacji internetowych z visual studio
2- zainstalować Nuget i zdobycie przez Nuget Facebook C# SDK
3- z https://developers.facebook.com/apps/ utwórz i skonfiguruj swoją aplikację.
4- Twój config WWW dla integracji facebook:

<configuration> 
    <configSections> 
    <section name="facebookSettings" type="Facebook.FacebookConfigurationSection" /> 
    </configSections> 
    <facebookSettings appId="123..." appSecret="abc...." siteUrl="http://apps.facebook.com/myapp/" canvasPage="http://app.facebook.com/myapp" secureCanvasUrl="https://myapp.com/" canvasUrl="http://myapp.com/" cancelUrlPath="http://www.facebook.com/" /> 
... 

Używając SDK można zanalizować podpisał wniosek lub ciasteczko napisany przez facebook js SDK

FacebookWebContext fbWebContext = new FacebookWebContext(); 
//Check if user auhtenticated 
bool IsAuthenticated = fbWebContext.IsAuthenticated(); 

Tutaj można mieć przyjaciela liczyć przez:

FacebookWebClient fbWebClient = new FacebookWebClient(); 
dynamic result = fbWebClient.Get("me/friends"); 
var friends = result["data"]; 
int frienCount = friends.Count; 

po stronie klienta:

<body> 
<div id="fb-root"></div> 
<script> 

window.fbAsyncInit = function() { 
    FB.init({ 
    appId: '123...', 
    status: true, 
    cookie: true, 
    xfbml: true, 
    oauth:true }); 
}; 
(function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e);    
}()); 

<!-- rest of your html --> 

</body> 

do logowania & prośbą o pozwolenie javascript

FB.getLoginStatus(function(response) { 
     console.log(response); 
     if ((response.status)&&(response.status=='connected')) { 
      //successs 
     } else { 
      //user declined 
      }, {scope:'user_likes, offline_access'} 

    }); 

wolę w moim projekcie po stronie klienta do logowania w ten sposób nie jest jeszcze zarejestrowany użytkownik ma stronę docelową, jeśli na przykład wysłać formularza potem zadzwonię blok kodu powyżej.

Uwaga: musisz ustawić nagłówek P3P, aby Internet Explorer mógł odczytać/zapisać plik cookie w zależności od serwera. dla IIS, global.asax:

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 

    HttpContext.Current.Response.AddHeader("p3p", "CP=\"CAO PSA OUR\""); 

} 

Wolja

+1

Pracował idealnie !! Wielkie dzięki! –

+0

@asdf_enel_hak nie mogłem znaleźć FacebookWebContext –

+0

@asdf_enel_hak również nie mógł znaleźć FacebookWebClient –

Powiązane problemy