我在FB中遇到新的许可问题 - 似乎用户现在需要通过oauth客户端来批准appli . 代码如下: -
protected void Page_Load(object sender,EventArgs e){
var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me" } };
if (auth.Authorize())
{
ShowFacebookContent();
}
else
{
Response.Redirect("https://www.facebook.com/dialog/oauth?client_id=<appli id>&redirect_uri=http://apps.facebook.com/<myapp>/Default.aspx");
FacebookWebAuthorizer auth2 = new FacebookWebAuthorizer(FacebookWebContext.Current);
auth2.Permissions = new[] { "name, first_name" };
if (auth2.Authorize())
{
Label1.Text = "Authorized";
}
else
{
Label1.Text = "Not Authorized";
}
}
问题在于,当一个新用户登录时,它会跳转到oauth站点,这会完成它的工作,然后很好地重定向回调用页面 - 然后循环并崩溃 . 似乎誓言传播需要一段时间,所以背后的代码是重新触发oauth重定向等...?
我可以让它工作的唯一方法是添加如上,让用户登录,然后他们认证然后循环和崩溃,然后我注释掉重定向并且他们是uthorised(即.auth2.name =“Billbo Baggins”或随你) .
有没有人有任何方便的提示或解决此问题 - 我花了3天时间现在通过所有(PHP中心)示例等无济于事 .
金纳德,乔纳森 .
1 回答
您使用的是旧版本的Facebook C#SDK . 我是SDK的作者,我甚至不记得这段代码...所以我的建议是你升级到版本6.你可能还想看一下更强大的ASP.NET Facebook模板身份验证助手 . http://www.asp.net/vnext/overview/fall-2012-update/facebook-application-template-tutorial
此外,您可以在此处找到为该模板编写的库:http://nuget.org/packages/Microsoft.AspNet.Mvc.Facebook . 源代码在这里:http://aspnetwebstack.codeplex.com/
如果您无法升级,您可能需要从github下载旧版本的Facebook C#SDK的源代码,并查看是否可以单步执行代码来查找问题 . https://github.com/facebook-csharp-sdk/facebook-csharp-sdk/tree/v5