Facebook Connect et ASP.NET

voix
45

Je suis à l' étape 8 de la liste d'authentification trouvée ici: http://wiki.developers.facebook.com/index.php/How_Connect_Authentication_Works

En particulier, l'utilisateur a connecté à Facebook via Facebook Connect et leur session Web a été créé. Comment puis-je utiliser la v2.0 boîte à outils développeur facebook (de clarté) pour récupérer des informations sur l'utilisateur. Par exemple, je voudrais obtenir le prénom et le nom de l'utilisateur.

Des exemples dans la documentation sont orientées vers les applications facebook, ce qui est pas.

Mettre à jour

Facebook a récemment publié l'API Graph. À moins que vous maintenez une application qui utilise Facebook Connect, vous devriez vérifier la dernière API: http://developers.facebook.com/docs/

Créé 27/11/2008 à 06:44
source utilisateur
Dans d'autres langues...                            


7 réponses

voix
13

Facebook Connect est en fait pas trop difficile, il y a juste un manque de documentation.

Mettez le javascript nécessaire d'ici: http://tinyurl.com/5527og

Valider les biscuits correspondent à la signature fournie par facebook pour prévenir le piratage, voir: http://tinyurl.com/57ry3s pour une explication sur la façon de commencer

Créer un objet api (Facebook.API.FacebookAPI) Sur l'objet api, définir la clé d'application et secret Facebook vous offre lorsque vous créez votre application. Définir api.SessionKeyet api.UserIddes cookies créés pour vous de facebook connecter.

Une fois cela fait, vous pouvez commencer à faire des appels à facebook:

Facebook.Entity.User user = api.GetUserInfo();   //will get you started with the authenticated person
Créé 02/12/2008 à 08:34
source utilisateur

voix
23

J'ai eu beaucoup de mal à comprendre comment faire côté serveur appelle une fois qu'un utilisateur connecté avec Facebook Connect. La clé est que le javascript Facebook Connect définit les cookies sur le client une fois il y a une connexion réussie. Vous utilisez les valeurs de ces cookies pour effectuer des appels API sur le serveur.

La partie déroutante cherchait à l'échantillon PHP, ils ont sorti. Leur API côté serveur prend automatiquement en charge la lecture de ces valeurs de cookie et la mise en place d'un objet API qui est prêt à faire des demandes au nom de l'utilisateur connecté.

Voici un exemple en utilisant la boîte à outils Facebook sur le serveur après que l'utilisateur a ouvert une session avec Facebook Connect.

Code Serveur:

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;
    }
}
Créé 15/12/2008 à 22:02
source utilisateur

voix
15

J'ai suivi sur ce concept et écrit un article à part entière qui permet de résoudre ce problème dans ASP.NET. S'il vous plaît voir ci-après.

Comment faire pour récupérer des données utilisateur de Facebook Connect dans ASP.NET - Devtacular

Merci à Calebt pour un bon départ sur cette classe d'aide.

Prendre plaisir.

Créé 01/03/2009 à 07:43
source utilisateur

voix
8

Ce manque de réponses proposées à ce jour:

Après connexion est réussie, Facebook vous recommande de valider les cookies ne sont en fait réglo et placé sur la machine cliente par eux.

Voici deux méthodes qui peuvent être utilisées ensemble pour résoudre ce problème. Vous pouvez ajouter la méthode IsValidFacebookSignature à la classe utilitaire de calebt. Remarquez que j'ai changé sa méthode de GetFacebookCookie aussi légèrement.

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

Le SecretKey et apikey sont des valeurs fournies par Facebook. Dans ce cas, ces valeurs doivent être définies, provenant de préférence à partir du fichier .config.

Créé 03/06/2009 à 03:34
source utilisateur

voix
6

J'ai suivi de grand article de Bill, et fait ce petit composant. Il prend en charge l'identification et la validation de l'utilisateur de cookies Facebook Connect.

Facebook Connect authentification pour ASP.NET

J'espère que cela aide quelqu'un!

À votre santé,

Adam

Créé 30/06/2009 à 21:09
source utilisateur

voix
1

Mes deux cents: un très simple projet en utilisant la fonction « Connexion avec Facebook » - facebooklogin.codeplex.com

Pas une bibliothèque, mais montre comment tout cela fonctionne.

Créé 11/04/2011 à 21:23
source utilisateur

voix
3

Vous pouvez également utiliser SocialAuth.NET

Il fournit l'authentification, les profils et les contacts avec Facebook, Google, MSN et Yahoo avec peu d'effort de développement.

Créé 30/05/2011 à 13:33
source utilisateur

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