Asp.net mvc 3 无法使用C#facebook SDK获取任何facebook权限
我有一个相当简单的网站,允许用户通过facebook进行连接 我使用的是C#facebook sdk MVC 起初,我不需要任何特定的权限,所以用户连接时没有问题。我的代码是这样的Asp.net mvc 3 无法使用C#facebook SDK获取任何facebook权限,asp.net-mvc-3,facebook-c#-sdk,Asp.net Mvc 3,Facebook C# Sdk,我有一个相当简单的网站,允许用户通过facebook进行连接 我使用的是C#facebook sdk MVC 起初,我不需要任何特定的权限,所以用户连接时没有问题。我的代码是这样的 public class FacebookController : BaseController { public FacebookSession FacebookSession { get { return (new CanvasAuthorizer().Session); }
public class FacebookController : BaseController
{
public FacebookSession FacebookSession
{
get { return (new CanvasAuthorizer().Session); }
}
public ActionResult Profile()
{
var client = new FacebookClient(this.FacebookSession.AccessToken);
dynamic me = client.Get("me");
ViewBag.Name = me.name;
ViewBag.Id = me.id;
return View();
}
}
在我的网络配置上
<facebookSettings appId="XXXXXXXXXXXXXX" appSecret="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"/>
这给了我一个例外:
异常详细信息:系统。异常:CanvasUrl为null或空
因此,我在我的网络配置中添加了canvasUrl,这使我在不显示canvasPage的情况下出现了相同的错误,所以现在我的网络配置中包含了所有4个
<facebookSettings appId="XXXXXXXXXX" appSecret="XXXXXXXXXXXXXXXXXXXXx" canvasUrl = "http://localhost:60606/" canvasPage = "https://apps.facebook.com/XXXXXXXXXXXX/"/>
因此,现在我的用户可以通过facebook登录,我的问题是,当他登录时,他会被重定向到我的facebook应用程序(http://apps.facebook.com/XXXXXXXXX/facebook/profile)
而是返回我的站点(http://localhost:60606/facebook/profile)
如何获得所需的权限,并在用户登录后将其重定向回我的站点
谢谢好吧,我的错
CanvasAuthorization听起来就是canvas的授权。
因此,如果没有facebook上的应用程序画布,你就无法使用它
我应该做的是使用FacebookOAuthClient
var oAuthClient = new FacebookOAuthClient(FacebookApplication.Current);
oAuthClient.RedirectUri = new Uri("XXXXXXXXXXXXXX");
var loginUri = oAuthClient.GetLoginUrl(new Dictionary<string, object> { { "state", null }, { "scope", "user_about_me,user_relationships,email" } });
return Redirect(loginUri.AbsoluteUri);
var oAuthClient=new-facebookouthclient(FacebookApplication.Current);
oAuthClient.RedirectUri=新Uri(“XXXXXXXXXXXXX”);
var loginUri=oAuthClient.GetLoginUrl(新字典{{“state”,null},{“scope”,“user\u关于我,user\u关系,email});
返回重定向(loginUri.AbsoluteUri);
var oAuthClient = new FacebookOAuthClient(FacebookApplication.Current);
oAuthClient.RedirectUri = new Uri("XXXXXXXXXXXXXX");
var loginUri = oAuthClient.GetLoginUrl(new Dictionary<string, object> { { "state", null }, { "scope", "user_about_me,user_relationships,email" } });
return Redirect(loginUri.AbsoluteUri);