2011-12-24 28 views
5

Ho visto molta documentazione sull'integrazione tra i siti Web ASP .NET e Facebook, ma non ho trovato un semplice esempio di lavoro, anche utilizzando Facebook C# SDK.Autenticazione del sito Web ASP.NET con facebook

Tutto ciò che voglio è un esempio di "accesso con Facebook" e per ottenere informazioni di base sull'utente (come nome, e-mail e foto).

Potete aiutarmi ragazzi per favore?

Grazie mille!

+1

Anche se questo sembra come una ripetizione domanda di fondo, è molto vero, anche mentre stavo sviluppando qualcosa che non riuscivo a trovare alcun esempio decente e ho visto tutti i tipi di diverso codice su alcuni post del blog. – gideon

risposta

9

come dici tu using Facebook C# SDK, allora ecco percorso e un codice per l'applicazione tela:

1- Creare l'applicazione web da visual studio
2- installare NuGet e ottenere da NuGet Facebook C# SDK
3- da https://developers.facebook.com/apps/ crea e configura la tua app.
4- La vostra configurazione web per l'integrazione 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/" /> 
... 

Utilizzando SDK, è possibile analizzare richiesta o biscotto scritto da facebook js sdk

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

Qui si può avere contano amico dal sottoscritto:

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

Per il lato client:

<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> 

Per login & chiedere il permesso a javascript

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

    }); 

preferisco nel mio progetto di accesso lato client utente quindi non ancora registrati hanno pagina di destinazione, se per esempio presentare il modulo, allora io chiamo blocco di codice di cui sopra.

Nota: è necessario impostare l'intestazione P3P per Internet Explorer per leggere/scrivere cookie in base al proprio server. per IIS, global.asax:

protected void Application_BeginRequest(Object sender, EventArgs e) 
{ 

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

} 

Volia

+1

Ha funzionato perfettamente !! Molte grazie! –

+0

@asdf_enel_hak non ho trovato FacebookWebContext –

+0

Anche @asdf_enel_hak non ha trovato FacebookWebClient –

Problemi correlati