2012-01-24 2 views
0

Я сделал приложение в качестве вкладки страницы. Мне нужно перенаправить на facebook-приложение, если кто-то сразу откроет URL-адрес веб-сайта. Для этого мне нужно проверить содержимое адресной строки, и если в нем не будет www.facebook.com, я перенаправляю URL-адрес в facebook-app. Но проблема в том, что внутри facebook iframe я не могу получить содержимое адресной строки.Перенаправление на приложение facebook через приложение-сайт

Не могли бы вы рассказать мне хороший способ включить перенаправление на fb-приложение, если кто-то напрямую обратится к моему URL-адресу на сайте?

ответ

2

Вероятно, самый простой способ добиться этого, это сделать следующий чек в JavaScript:

if (window.top !== window){ 
    window.location = 'http://facebook.com/YOUR_PAGE?sk=v_YOUR_APP_ID' 
} 
+0

Я сделал ошибку в исходный код, это должно быть '' === не ''! == –

0

Facebook отправляет подписанный параметр запроса при открытии приложения в Fanpage.

Вы можете проверить, является ли этот параметр нулевым или нет.

В PHP

if(isset($_REQUEST["signed_request"]){ 
// Opened in facebook 
}else{ 

//opened outside facebook. 
} 

в ASP.Net

if(Request.Form["signed_request"] !=null) 
    { 
     // Opened in facebook 
} 
else 
{ 
// opened outside facebook. 
} 
+0

бушель Я не думаю, что это можно использовать на каждой странице моего приложения, поскольку подписанный запрос находится только на первой странице, не так ли? – akshay3004

+0

Установите cookie, когда у вас есть signed_request.And проверьте его на последующих страницах. – Jashwant

1

Если вы желаете, чтобы перенаправлять на вкладке, более совершенный способ сделать это проверка для параметра «страницы» который отправляется только в подписанном запросе для вкладки страницы.

Причина в том, что только проверка подписанного запроса позволит пользователям получить доступ к 520px вкладку приложения в холст Facebook (т.е. https://apps.facebook.com/yourapp, который не может быть то, что вы хотите.

Так, например

$fb = new Facebook(array(
          'appId' => <your_app_id>, 
          'secret' => <your_app_secret>); 
    $sr = $fb -> getSignedRequest(); 

И затем перенаправить пользователя, как они попали на страницу

if (!($sr['page'])) { 
     die('<script>window.top.location = "<your_tab_url>"</script>'); 
    }; 
Смежные вопросы