2011-07-08 65 views
2

我遇到了FB中新的權限問題 - 好像用戶現在需要通過oauth客戶端來批准應用程序。碼如下: -oauth重定向權限循環!

保護無效的Page_Load(對象發件人,EventArgs的) {

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 =」比爾博巴金斯「或其他)。

有沒有人有任何方便的提示或解決此問題 - 我花了3天現在通過所有(PHP中心)示例等無濟於事。

Kindest,Jonathan。

回答

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