我在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网站,这会完成它的工作,然后很好地重定向回到调用页面 - 然后循环播放&amp;崩溃了。 似乎誓言传播需要一段时间,所以背后的代码是重新触发oauth重定向等...?
我能让这个工作的唯一方法是添加如上所示,让用户登录,然后他们认证然后循环&amp;崩溃,然后我评论出重定向&amp;他们是uthorised(即auth2.name =“Billbo Baggins”或其他)。
有没有人有任何方便的提示或解决这个问题 - 我花了3天时间浏览所有(以PHP为中心)的例子等都无济于事。
Kindest,Jonathan。
答案 0 :(得分:0)
您使用的是旧版本的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