C#脸书SDK不起作用



我有一个网站write(.net 4),我正在创建一些facebook登录名。

在我下载了c#的Facebook sdk后,我正在使用访问令牌获取用户信息。

在我看来,我做错了什么,我检查的所有例子都与我的有点不同。而不是通过获取参数醚

me["id"] // mine
me.id // examples

当我试图获得像示例那样的值时,我会出错。

此外,我在获取用户的电子邮件地址时遇到了问题,已经将电子邮件添加到范围:

此方法负责获取访问令牌:

public string GetAccessToken()
        {
            Dictionary<string, string> tokens = new Dictionary<string, string>();
            string url = string.Format("https://graph.facebook.com/oauth/access_token?client_id={0}&redirect_uri={1}&scope={2}&code={3}&client_secret={4}",
                strAppId, Request.Url.AbsoluteUri, strScope, Request["code"].ToString(), strAppSecret);
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                StreamReader reader = new StreamReader(response.GetResponseStream());
                string vals = reader.ReadToEnd();
                foreach (string token in vals.Split('&'))
                {
                    tokens.Add(token.Substring(0, token.IndexOf("=")),
                            token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
                }
            }
            string access_token = tokens["access_token"];
            return access_token;
        }

这种负责获取用户信息的方法:

  public string GetUserInfo(string strToken)
         {
             var client = new FacebookClient(strToken);
             dynamic me = client.Get("me");
             User user = new User();
             try
             {
                 string user_id = me["id"];
                 string user_first_name = me["first_name"];
                 string user_last_name = me["last_name"];
                 string user_name = me["username"];
                 string user_location = me["location"]["name"];
                 string user_city = me["hometown"]["name"];
                 //user_mail = me.email;                 }
             catch(Exception ex)
             {
             }

             return string.Empty;
         }

当尝试在me.email或我["电子邮件"]上运行时,我会收到以下错误:

'me.email' threw an exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'   dynamic {Microsoft.CSharp.RuntimeBinder.RuntimeBinderException}

我建议您使用Microsoft.AspNet.Mvc.Facebook。它很容易使用,并且已经完成了所有这些属性。

http://www.asp.net/mvc/tutorials/mvc-4/aspnet-mvc-facebook-birthday-app

最新更新