2012-09-13 39 views
2

我想要的代码,将用户重定向到我的应用程序,如果他/她尝试打开我的应用程序托管网站。 为前: 我的应用程序链接:https://apps.facebook.com/gaming-zone/ 应用托管链接:http://gaming-zone.herokuapp.com/重定向到我的应用程序,如果应用程序托管网站被访问

我发现已经有一些代码,但这些代码汽车无重定向用户时,如果他使用在Facebook上我的应用程序,他在玩什么游戏,然后还它将用户重定向到应用程序主页。 我想要确切的代码,只有当他访问我的托管网站时重定向用户。

这些,我发现已经是代码:

<script type='text/javascript'> 
if (window.top.location == window.location) 
    window.top.location = 'https://apps.facebook.com/gaming-zone/'; 
</script> 

回答

0

这里是我使用的代码:

<script type="text/javascript"> 
    function NotInFacebookFrame() { 
    return top === self; 
    } 
    function ReferrerIsFacebookApp() { 
    if(document.referrer) { 
     return document.referrer.indexOf("apps.facebook.com") != -1; 
    } 
    return false; 
    } 
    if (NotInFacebookFrame()) { 
    top.location.replace("https://apps.facebook.com/YOUR_APP_NAMESPACE"); 
    } 
</script> 

此检查,如果他们是目前在Facebook的框架和,只有当他们没有会重定向他们“https://开头的应用程序。 facebook.com/YOUR_APP_NAMESPACE“

注意:你可以在你的应用程序的任何页面上使用它,只需相应地更改URL即可。

例如:如果您在http://YourDomain.com/anotherpage.php利用这一点,你可以改变URL在上面的代码https://apps.facebook.com/YOUR_APP_NAMESPACE/anotherpage.php

+0

非常感谢你的帮助这就是我想要的:) –

0

的问题是,你不能读取window.top.location值。你只能写它。奇怪,但多数民众赞成它。

选项1:将您的应用程序安装到页面选项卡并创建一个类似门。像门将iframe总是会返回false iframe。

选项2:在后端加载页面时检查签名的请求数据。

选项3:其他选项是检查顶端网址,但是在后端。

+0

zsitro日Thnx你的回应,你可以告诉我,我怎么能做到这一点的选项2和3 PLZ给我的代码:) –

+0

选项2:你可以在这里找到资源:https://developers.facebook.com/docs/authentication/signed_request/ 和这里: http://stackoverflow.com/questions/8229986/情况与签名请求会议和php-sdk-3-0 选项3:继承人如何你可以阅读父母的网址:http://stackoverflow.com/a/8962276/1178072 我建议打印出结果并进行检查。 祝你好运! – zsitro

+0

thnx为你的帮助 –

相关问题