我在FB中遇到了新的权限问题-似乎用户现在需要通过oauth客户端来批准应用程序。代码如下:-
保护无效Page_Load(对象发送者,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网站,它做它的事情,然后很好地重定向回调用页面-然后循环&崩溃了。似乎需要一段时间来传播誓言,所以背后的代码是重新触发誓言重定向-等等…?
我能让这个工作的唯一方法是添加如上所述,让用户登录,他们验证然后循环&崩溃,然后我注释掉重定向&他们是被授权的。auth2.name="Billbo Baggins"或其他什么)。
有没有人有任何方便的提示或工作围绕这个-我已经花了3天时间,现在通过所有(PHP为中心)的例子等无济于事。
亲切,乔纳森。
您使用的是非常旧的Facebook c# SDK版本。我是SDK的作者,我甚至不记得这段代码…因此,我建议您升级到版本6。您可能还想看一下ASP。NET Facebook模板,它有更健壮的身份验证助手。http://www.asp.net/vnext/overview/fall - 2012 - update/facebook -应用程序-模板-教程
此外,您可以在这里找到为该模板编写的库: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