Facebook Connect a ASP.NET

hlasů
45

Jsem v kroku 8 tohoto přehledu autentizační zde: http://wiki.developers.facebook.com/index.php/How_Connect_Authentication_Works

Zejména má uživatel přihlášen do Facebooku přes Facebook Connect a byla vytvořena jejich webové relace. Jak používat Facebook pro vývojáře Toolkit v2.0 (od jasnosti) k získání informací o uživateli. Například, rád bych se dostat křestní jméno uživatele a příjmení.

Příklady v dokumentaci jsou zaměřeny na facebooku aplikací, což je tomu tak není.

Aktualizace

Facebook nedávno vydala API Graph. Pokud nejste udržení aplikace, které používají Facebook Connect, měli byste se podívat na nejnovější rozhraní API: http://developers.facebook.com/docs/

Položena 27/11/2008 v 06:44
zdroj uživatelem
V jiných jazycích...                            


7 odpovědí

hlasů
13

Facebook Connect ve skutečnosti není příliš obtížné, je to jen nedostatek dokumentace.

Dát potřebnou javascript odsud: http://tinyurl.com/5527og

Ověřovat sušenky odpovídat podpisu poskytované přes facebook, aby se zabránilo hacking, viz: http://tinyurl.com/57ry3s vysvětlení o tom, jak začít

Vytvořte objekt API (Facebook.API.FacebookAPI) na objektu api, nastavte klíč aplikace a tajné Facebook poskytuje při vytváření aplikace. Nastavena api.SessionKeya api.UserIdod cookies vytvořených pro vás z facebooku připojit.

Jakmile to bude hotové, můžete začít telefonovat na facebooku:

Facebook.Entity.User user = api.GetUserInfo();   //will get you started with the authenticated person
Odpovězeno 02/12/2008 v 08:34
zdroj uživatelem

hlasů
23

Měl jsem hodně problémů přijít na to, jak udělat na straně serveru volá jakmile uživatel přihlášen s Facebook Connect. Klíčem k úspěchu je, že Facebook Connect javascript nastaví cookie na straně klienta, jakmile tu úspěšném přihlášení. Použít hodnoty těchto sušenek provádět volání API na serveru.

Matoucí část byla při pohledu na vzorku PHP, které uvolní. Jejich boční API server automaticky postará o čtení těchto hodnot cookies a nastavení objektu API, který je připraven, aby se žádostí jménem přihlášeného uživatele.

Zde je příklad použití Facebook Toolkit na serveru poté, co se uživatel přihlásí se pomocí Facebook Connect.

Kód 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;
    }
}
Odpovězeno 15/12/2008 v 22:02
zdroj uživatelem

hlasů
15

Šel jsem se na tomto konceptu a napsal plnohodnotného článek, který řeší tento problém v ASP.NET. Viz následující.

Jak načíst uživatelská data z Facebooku Connect v ASP.NET - Devtacular

Díky Calebt za dobrý start na tomto pomocnou třídu.

Užívat si.

Odpovězeno 01/03/2009 v 07:43
zdroj uživatelem

hlasů
8

To je chybějící z odpovědí doposud uvedených:

Po přihlášení je úspěšný, Facebook doporučuje, abyste potvrdili, že sušenky jsou ve skutečnosti důvěryhodně a umístěné na klientském počítači pomocí nich.

Zde jsou dvě metody, které mohou být použity společně vyřešit. Možná budete chtít přidat metodu IsValidFacebookSignature třídy Utility calebt je. Všiml jsem si změnil způsob GetFacebookCookie mírně stejně.

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

SecretKey a apikey jsou hodnoty, které jste dostali od Facebooku. V tomto případě je třeba nastavit, nejlépe pocházejícími ze souboru .config tyto hodnoty.

Odpovězeno 03/06/2009 v 03:34
zdroj uživatelem

hlasů
6

Sledoval jsem se z Billova skvělý článek, a udělal tento malý komponent. Pečuje o identifikaci a validaci uživatele od sušenek Facebook Connect.

Facebook Connect ověřování pro ASP.NET

Doufám, že pomůže někdo!

Na zdraví,

Adam

Odpovězeno 30/06/2009 v 21:09
zdroj uživatelem

hlasů
1

My dva centy: a velmi jednoduchý projekt využívající „Přihlásit se přes Facebook“ feature - facebooklogin.codeplex.com

Není knihovna, ale ukazuje, jak to všechno funguje.

Odpovězeno 11/04/2011 v 21:23
zdroj uživatelem

hlasů
3

Můžete také použít SocialAuth.NET

Poskytuje autentizace, profily a kontakty s Facebookem, Google, MSN a Yahoo s minimálním úsilím rozvoje.

Odpovězeno 30/05/2011 v 13:33
zdroj uživatelem

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