2011-01-10 7 views
1

Ich habe gerade angefangen, mit dem Facebook SDK dieses Wochenende zu arbeiten. Ich versuche Facebook in eine Website zu integrieren. Ich folgte den Samples und der Dokumentation und bekam den Facebook-Login-Button mit der Anzeige von "Faces" ziemlich schnell (nettes Toolkit).Authorizer.IsAuthorized gibt false zurück, nachdem ich mich authentifiziert habe

<fb:login-button autologoutlink="true" perm="email" show-faces="true" width="200" max-rows="1"></fb:login-button> 

Ich möchte überprüfen, ob der Benutzer bereits authentifiziert wurde (über Facebook). Das ist nicht anders als das, was ich in vielen Proben gesehen habe. Das Problem, das ich habe, ist, dass in meinem Page_Load die authorizer.IsAuthorized False zurückgibt, auch nachdem ich mich authentifiziert habe (mein Profilbild wird ebenfalls angezeigt). Gibt es etwas, das ich vermisse?

protected void Page_Load(object sender, EventArgs e) 
{ 

    try 
    { 
     Facebook.FacebookApp app = new Facebook.FacebookApp(); 

     Facebook.Web.Authorizer authorizer = new Facebook.Web.Authorizer(app); 

     if (authorizer.IsAuthorized()) 
     { 

     } 
     else 
     { 

     } 
    } 
    catch (Exception ex) 
    { 
    } 
} 
+0

Aus dem Blick auf Ihren Code scheint es, dass Sie nicht das Facebook Developer Toolkit verwenden. Anscheinend verwenden Sie das Facebook C# SDK. –

Antwort

2

Ich habe die Version 4.1.1 von Facebook C# SDK verwendet, bis ich das gleiche Problem habe. Dann habe ich Version 4.2.1 heruntergeladen und alle Authorizer.Perms entfernt.

FacebookApp fbApp = new FacebookApp(access_token); 
Authorizer fbAuth = new Authorizer(fbApp); 
fbAuth.IsAuthorized();// returns true 

Problem wurde gelöst.

Der Grund ist als irgendwie UserId wird 0 sogar Sie autorisierte Anwendung in Facebook. Sie haben es gelöst. Wenn Sie jetzt den Konstruktor FacebookApp (access_token) verwenden, wird UserId von access_token abgerufen.

Verwandte Themen