OAuth2Client获得额外的Facebook数据

时间:2012-09-07 06:40:50

标签: asp.net asp.net-mvc dotnetopenauth

我正在尝试弄清楚如何使用自定义OAuth2Client请求Facebook用户的电子邮件地址,但是我在Google上找到的文档严重缺乏。我已经在facebook应用程序上设置了权限,但我已经读过Microsoft的默认Facebook客户端不会请求电子邮件,唯一的方法就是自己动手。

是否有人知道任何可以通过编写自定义OAuth2Client来展示如何从Facebook请求额外数据的优秀资源或代码?

1 个答案:

答案 0 :(得分:0)

在重定向到FB之前,您需要指定如下所示的参数

var parameters = new Dictionary<string, object>();
        parameters["state"] = returnUrl;
        parameters["scope"] = "email";

这就是获取信息的方法,因为在很多情况下,用户的电子邮件地址都有隐私权,所以在这种情况下你不会收到电子邮件

FacebookClient fbClient = new FacebookClient(accessToken);
                    dynamic me = fbClient.Get("/me");

 FBModel f = new FBModel();//Making Model class object to pass values to it                  
                    f.Name = me.name;
                    f.FirstName = me.first_name;
                    f.LastName = me.last_name;
                    f.Gender = me.gender;            
                    if (me.email != null)
                    {
                        f.Username = me.email;
                        f.isEmail = true;

                    }