Facebook c#sdk让用户收到电子邮件

3 facebook oauth facebook-c#-sdk

我有一个使用facebook进行身份验证的网站.我想在用户注册时收集一些基本信息,包括他们的电子邮件地址.

我登录的代码是标准的:

public ActionResult Login(string returnUrl)
    {
        var oAuthClient = new FacebookOAuthClient();
        oAuthClient.AppId = AppSettings.GetConfigurationString("appId");
        oAuthClient.RedirectUri = new Uri(AppSettings.GetConfigurationString("redirectUrl"));
        var loginUri = oAuthClient.GetLoginUrl(new Dictionary<string, object> { { "state", returnUrl } });
        return Redirect(loginUri.AbsoluteUri);
    }
Run Code Online (Sandbox Code Playgroud)

如何添加访问权限的请求?或者我是以另一种方式做到的?

Ale*_*dam 10

您需要使用该email权限(完整列表在此处:http://developers.facebook.com/docs/authentication/permissions/)

添加授权权限的方法是将逗号分隔列表附加到&scope=,例如:

https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream


更新:当您标记时,参数将传递给GetLoginUrl()方法,尽管在他们也使用的codeplex论坛中ExchangeCodeForAccessToken(),您可能也想要查看它们.

使用C#SDK的几个示例:

http://blog.prabir.me/post/Facebook-CSharp-SDK-Writing-your-first-Facebook-Application.aspx

Facebook .NET SDK:如何使用ASP.NET MVC 2进行身份验证

http://facebooksdk.codeplex.com/discussions/244568


小智 5

sdk代码的窥探我和我出现了:

 public ActionResult Login(string returnUrl)
    {
        var oAuthClient = new FacebookOAuthClient();
        oAuthClient.AppId = AppSettings.GetConfigurationString("appId");
        oAuthClient.RedirectUri = new Uri(AppSettings.GetConfigurationString("redirectUrl"));

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

        var loginUri = oAuthClient.GetLoginUrl(parameters);
        return Redirect(loginUri.AbsoluteUri);
    }
Run Code Online (Sandbox Code Playgroud)

尚未测试,而且missus正在大喊大叫工作到很晚,所以必须测试tomoz :)