2012-08-22 5 views
5

Ich entwickle eine Facebook-Seite Tab App. Wenn ich die Seitenregisterkarten-URL in den App-Einstellungen auf localhost/fbapp setze, funktioniert das nicht, da die Seitenregisterkarte nicht einfach iframe ist. Gibt es eine Problemumgehung, um das zu beheben?Wie kann ich meine Facebook Seite Tab App von localhost testen

EDIT

Ich facebook Aufbau Seite Registerkarte mit ASP.NET MVC-3.0 mit # SDK fb C.

Was ich bisher versucht habe, ist hosts Datei zu ändern, um die URL, die ich auf App-Einstellungen zu localhost (127.0.0.1) zeigen. Ich habe Facebook-App auf diese Weise immer getestet, aber es funktioniert nicht in Facebook-Registerkarte.

+1

Keine Problemumgehung.Bei Seitentabellen (authentifiziert und nicht authentifiziert) sendet der FB eine signed_request an die Site, wenn die Seitenregisterkarte geladen wird. Sie können versuchen, dies zu simulieren, indem Sie diese signed_request aufzeichnen und sie für die HTTP_POST Ihres lokalen Hosts verwenden. Hinweis: Signed_request hat einen Ablauf! –

+0

Ja, das habe ich mir gedacht, und ich teste gerade so. Ich wollte eigentlich das Parsen von signed_request testen. Danke für Ihre Hilfe! – mask8

+0

Siehe meine Antwort unten zum schnellen Analysieren signed_request –

Antwort

0

Ich fand das Problem mit Facebook Registerkarte. Es scheint, dass sie http auf der Registerkarte Seite nicht akzeptieren, auch wenn ich Sandbox-Modus aktiviert habe. Alles, was ich tun muss, ist IIS einzurichten, um mit https zu arbeiten und die App über die SSL auszuführen. Es funktioniert jetzt perfekt. Danke Jungs für alle Hilfe

+2

Sie haben möglicherweise "sicheres Surfen" in Ihren Facebook Sicherheitseinstellungen aktiviert. https pages/apps lädt nur https-URLs in die Zeichenfläche. –

+0

@AshwiniDhekane Sie haben Recht. Ich habe das aktiviert und alles musste über https bedient werden. – mask8

3

In Anwendungseinstellung in Seitenregister url gesetzt

http://localhost/yourpagetabdir/ 

setting on facebook

ich diese Einstellung verwende für meine Seite Anwendungstest frmlocalhost seine funktioniert gut von meinem ASP.Net Development Server, wenn Sie IIS verwenden Server stellen Sie sicher, dass Ihr IIS-Server die Seite in iframe erlaubt.

danach, wenn u wollen

Facebook.FacebookConfigurationSection s = new FacebookConfigurationSection(); 
       s.AppId = "AppID"; 
       s.AppSecret = "Secret"; 
       FacebookWebContext wc = new FacebookWebContext(s); 
       dynamic da = wc.SignedRequest.Data; 
       dynamic page = da.page; 
       string curpageid = page.id; 
       bool isLiked = page.liked; 
       bool isAdmin = page.admin; 
+0

das funktioniert nicht. Ich weiß, dass ich Facebook-App auf diese Weise testen kann, aber Seitenregister scheint nicht nur ein Iframe zu sein. – mask8

+0

Sie bitten FB, sich mit dieser Konfiguration an sich selbst zu posten. –

+1

Das ist einfach nicht wahr. Die POST-Anfrage passiert __client side__, in Ihrem Browser - und Ihr eigener Browser auf Ihrer eigenen Maschine weiß ziemlich gut, dass localhost bedeutet, dass es sich um eine Maschine handelt, auf der er läuft. – CBroe

0

Mit FB PHP SDK Seite signierte Anfrage zum Beispiel zu bekommen, können Sie die signed_request posten und analysieren es mit einem paar Zeilen: -

require_once ("facebook.php"); // this file comes from the SDK 
$config = array(); 
$config['appId'] = 'get_appID_from_app_menu'; 
$config['secret'] = 'get_secret_below_appID'; 
$facebook = new Facebook($config); 
$signed_request = $facebook->getSignedRequest(); 
print_r($signed_request); 

Vermeiden Sie dieses längliche Beispiel, das in FBs Blog gegeben wird. Viel Glück Codierung :)

+0

danke, aber ich mache mit C# SDK. und ich weiß, wie man das macht. Ich wollte es nur auf meinem lokalen Tab "Via-Seite" testen. – mask8

1

Versuchen Sie, Ihre Hosts-Datei bearbeiten, so dass, wenn Sie zu http://example.com gehen es Links zu Ihrer http://localhost/yourapp

Hier ist, wie es zu tun:

Dies soll dann arbeitet die iframe auf einen gültigen URL verweisen würden, die auf dem lokalen Computer Punkt würde Ihr Inhalt. Beachten Sie, dass dies nicht funktioniert, wenn Sie auf die Registerkarte von anderen Computern zugreifen, da die URL für sie auf etwas anderes (oder nichts, abhängig davon, welchen Domänennamen Sie auswählen) verweisen würde.

+0

Danke, aber ich habe es schon einmal versucht und es funktioniert immer noch nicht. Ich weiß, das funktioniert in der fb App-Seite, aber App-Tab auf der fb-Seite. – mask8

Verwandte Themen