2012-08-22 15 views
5

Zajmuję się tworzeniem aplikacji zakładki strony na Facebooku. Kiedy ustawiam adres URL karty strony w ustawieniach aplikacji na coś takiego jak localhost/fbapp, nie działa, ponieważ zakładka strony nie jest po prostu elementem iframe. Czy istnieje sposób rozwiązania tego problemu?Jak mogę przetestować aplikację na kartę na moim facebooku z localhosta

EDIT

mam Facebookiem budowy zakładce z ASP.NET MVC-3,0 fb C# SDK.

Próbowałem do tej pory zmodyfikować plik hosts, aby wskazać adres URL, który mam na ustawieniach aplikacji na localhost (127.0.0.1). Testowałem aplikację facebook w ten sposób zawsze, ale nie działa ona na zakładce na Facebooku.

+1

Bez obejścia.W przypadku pagetabs (uwierzytelnione i nieautoryzowane), FB opublikuje podpisane_request na stronie po załadowaniu pagetab. Możesz spróbować symulować to, nagrywając ten podpis_request i używać go do HTTP_POST lokalnego hosta. Uwaga: Signed_request ma ważność! –

+0

Tak, właśnie to wymyśliłem i testuję w ten sposób. Chciałem przetestować parsowanie signed_request. Dzięki za pomoc! – mask8

+0

Zobacz poniżej odpowiedź na temat szybkiego analizowania signed_request –

Odpowiedz

0

Rozwiązałem problem z zakładką na Facebooku. Wygląda na to, że nie akceptują one http na karcie strony, nawet jeśli mam włączony tryb piaskownicy. Wszystko, co muszę zrobić, to skonfigurować IIS do pracy z https i uruchomić aplikację przez ssl. Teraz działa idealnie. Dziękujemy za pomoc

+2

Możesz włączyć "bezpieczne przeglądanie" w swoich ustawieniach Facebook Security. Strony/aplikacje https będą ładować tylko adresy URL https w obszarze roboczym. –

+0

@AshwiniDhekane masz rację. Mam to włączone i wszystko musi być obsługiwane przez https. – mask8

3

w tworzeniu aplikacji w zakładce URL strony ustawić

http://localhost/yourpagetabdir/ 

setting on facebook

Używam tego ustawienia dla mojego testu aplikacji strona frmlocalhost swoje prace w porządku z moim serwerze ASP.Net Development jeśli używasz IIS serwer upewnij się, że twój serwer IIS zezwala na stronę w elemencie iframe.

po tym, jeśli u chcą, aby strona podpisany wniosek

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

to nie działa. Wiem, że mogę przetestować aplikację na Facebooku w ten sposób, ale karta strony nie wydaje się być tylko elementem iframe. – mask8

+0

Pytasz FB, aby opublikować się z tą konfiguracją. –

+1

To nie jest prawda. Żądanie POST dzieje się __client side__, w twojej przeglądarce - a twoja własna przeglądarka na twoim komputerze wie całkiem nieźle, że localhost ma oznaczać, że jest to maszyna, na której on działa. – CBroe

0

Korzystanie FB PHP SDK na przykład, można opublikować signed_request i analizować je za pomocą kilku linii: -

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); 

Unikaj tego długiego przykładu na blogu FB. Powodzenia kodowania :)

+0

dzięki, ale robię z C# SDK. i wiem, jak to zrobić. Chciałem przetestować go na mojej lokalnej karcie strony. – mask8

1

Spróbuj edycji pliku hosts tak, że kiedy idziesz do http://example.com to linki do http://localhost/yourapp

Oto jak to zrobić:

to powinno działać jak wtedy iframe wskazywałoby na ważnej zawartości, co na komputerze lokalnym wskazywałoby na swoje zadowolony. Zauważ, że to nie zadziała, jeśli uzyskasz dostęp do karty z innych komputerów, ponieważ dla nich adres URL wskazywałby na coś innego (lub nic, w zależności od wybranej nazwy domeny).

+0

Dzięki, ale próbowałem już wcześniej i nadal nie działa. Wiem, że działa to na stronie aplikacji fb, ale na karcie aplikacji na stronie fb. – mask8

Powiązane problemy