Facebook Connect e ASP.NET

voti
45

Sono al punto 8 della panoramica di autenticazione trovato qui: http://wiki.developers.facebook.com/index.php/How_Connect_Authentication_Works

In particolare, l'utente ha effettuato l'accesso a Facebook tramite Facebook Connect e la loro sessione web è stato creato. Come faccio a utilizzare il toolkit v2.0 facebook sviluppatore (da chiarezza) per recuperare le informazioni sull'utente. Ad esempio, mi piacerebbe ottenere prima il nome dell'utente e il cognome.

Gli esempi nella documentazione sono orientati verso le applicazioni Facebook, che questo non è.

Aggiornare

Facebook ha recentemente rilasciato l'API grafico. A meno che non si sta mantenendo un'applicazione che utilizza Facebook Connect, si dovrebbe controllare le ultime API: http://developers.facebook.com/docs/

È pubblicato 27/11/2008 alle 06:44
fonte dall'utente
In altre lingue...                            


7 risposte

voti
13

Facebook Connect in realtà non è troppo difficile, c'è solo una mancanza di documentazione.

Mettere il javascript necessario da qui: http://tinyurl.com/5527og

Convalidare i cookie corrispondono alla firma fornito da Facebook per prevenire la pirateria informatica, vedi: http://tinyurl.com/57ry3s per una spiegazione su come iniziare

Creare un oggetto api (Facebook.API.FacebookAPI) sull'oggetto api, impostare la chiave segreta dell'applicazione e Facebook si offre quando si crea la tua applicazione. Impostare api.SessionKeye api.UserIddai biscotti creati per voi da Facebook connect.

Una volta fatto ciò, si può iniziare a fare chiamate a facebook:

Facebook.Entity.User user = api.GetUserInfo();   //will get you started with the authenticated person
Risposto il 02/12/2008 a 08:34
fonte dall'utente

voti
23

Ho avuto un sacco di problemi a capire come fare lato server chiama una volta un utente connesso con Facebook Connect. La chiave è che il Facebook Connect javascript imposta cookie sul client una volta c'è un login riuscito. È possibile utilizzare i valori di questi cookie per eseguire chiamate API sul server.

La parte confusa stava guardando il campione PHP hanno rilasciato. Il loro lato server API si occupa automaticamente di lettura di questi valori dei cookie e la creazione di un oggetto API che è pronto a fare richieste per conto di l'utente connesso.

Ecco un esempio utilizzando il Facebook Toolkit sul server dopo che l'utente ha effettuato l'accesso con Facebook Connect.

codice del server:

API api = new API();
api.ApplicationKey = Utility.ApiKey();
api.SessionKey = Utility.SessionKey();
api.Secret = Utility.SecretKey();
api.uid = Utility.GetUserID();

facebook.Schema.user user = api.users.getInfo();
string fullName = user.first_name + " " + user.last_name;

foreach (facebook.Schema.user friend in api.friends.getUserObjects())
{
   // do something with the friend
}

Utility.cs

public static class Utility
{
    public static string ApiKey()
    {
        return ConfigurationManager.AppSettings["Facebook.API_Key"];
    }

    public static string SecretKey()
    {
        return ConfigurationManager.AppSettings["Facebook.Secret_Key"];
    }

    public static string SessionKey()
    {
        return GetFacebookCookie("session_key");
    }

    public static int GetUserID()
    {
        return int.Parse(GetFacebookCookie("user"));
    }

    private static string GetFacebookCookie(string name)
    {
        if (HttpContext.Current == null)
            throw new ApplicationException("HttpContext cannot be null.");

        string fullName = ApiKey() + "_" + name;
        if (HttpContext.Current.Request.Cookies[fullName] == null)
            throw new ApplicationException("Could not find facebook cookie named " + fullName);
        return HttpContext.Current.Request.Cookies[fullName].Value;
    }
}
Risposto il 15/12/2008 a 22:02
fonte dall'utente

voti
15

Ho seguito su questo concetto e ha scritto un articolo pieno titolo che risolve questo problema in ASP.NET. Si prega di consultare il seguente.

Come recuperare i dati utente da Facebook Connect in ASP.NET - Devtacular

Grazie ad Calebt per un buon inizio su quella classe helper.

Godere.

Risposto il 01/03/2009 a 07:43
fonte dall'utente

voti
8

Questo manca dalle risposte elencate finora:

Dopo il login va a buon fine, Facebook consiglia di convalidare i cookie sono infatti legit e collocato sulla macchina client da loro.

Ecco due metodi che possono essere utilizzati insieme per risolvere questo problema. Si potrebbe desiderare di aggiungere il metodo IsValidFacebookSignature alla classe di utilità di calebt. Notate che ho cambiato un po 'il suo metodo GetFacebookCookie pure.

private bool IsValidFacebookSignature()
{
        //keys must remain in alphabetical order
        string[] keyArray = { "expires", "session_key", "ss", "user" };
        string signature = "";

        foreach (string key in keyArray)
            signature += string.Format("{0}={1}", key, GetFacebookCookie(key));

        signature += SecretKey; //your secret key issued by FB

        MD5 md5 = MD5.Create();
        byte[] hash = md5.ComputeHash(Encoding.UTF8.GetBytes(signature.Trim()));

        StringBuilder sb = new StringBuilder();
        foreach (byte hashByte in hash)
            sb.Append(hashByte.ToString("x2", CultureInfo.InvariantCulture));

        return (GetFacebookCookie("") == sb.ToString());
    }

    private string GetFacebookCookie(string cookieName)
    {
        //APIKey issued by FB
        string fullCookie = string.IsNullOrEmpty(cookieName) ? ApiKey : ApiKey + "_" + cookieName;

        return Request.Cookies[fullCookie].Value;
    }

La chiave segreta e apikey sono valori forniti all'utente da Facebook. In questo caso questi valori devono essere fissati, preferibilmente proveniente dal file .config.

Risposto il 03/06/2009 a 03:34
fonte dall'utente

voti
6

Ho seguito da grande articolo di Bill, e ho fatto questo piccolo componente. Si occupa anche di identificare e convalidare l'utente dai cookie Facebook Connect.

Facebook Connect autenticazione per ASP.NET

Mi auguro che aiuta qualcuno!

Saluti,

Adamo

Risposto il 30/06/2009 a 21:09
fonte dall'utente

voti
1

I miei due centesimi: una molto semplice progetto utilizzando il "login con Facebook" caratteristica - facebooklogin.codeplex.com

Non una biblioteca, ma mostra come funziona il tutto.

Risposto il 11/04/2011 a 21:23
fonte dall'utente

voti
3

Si può anche utilizzare SocialAuth.NET

Esso fornisce autenticazione, profili e contatti con Facebook, Google, MSN e Yahoo con il minimo sforzo di sviluppo.

Risposto il 30/05/2011 a 13:33
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more