oauth重定向到权限循环!

时间:2011-07-08 13:01:46

标签: facebook-c#-sdk

我在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。

1 个答案:

答案 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