Facebook的c#sdk获取用户的电子邮件
我有一个网站是使用Facebook的身份验证。我想在用户注册时收集一些基本信息,包括他们的电子邮件地址。Facebook的c#sdk获取用户的电子邮件
代码中,我有登录为标准:
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);
}
我如何请求增加访问权限的呢?或者我以另一种方式做它?
在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);
}
未测试编辑它还没有,因为工作到很晚,所以将要测试tomoz :)
Thx 4 help .. :) – rafek 2011-05-24 18:33:52
您需要使用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
是的 - 我需要知道如何使用c#facebook sdk:http://facebooksdk.codeplex.com/ – iwayneo 2011-04-11 18:36:01
不完全重复,但沿着相同的路线:[Facebook的连接,电子邮件地址?](http://stackoverflow.com/questions/2986578/facebook-connect-email-address) – Rup 2011-04-11 18:15:31