繁体   English   中英

如果直接点击主机URL,将facebook应用程序重定向到画布URL

[英]redirect facebook app to canvas url if host url is hit directly

我有一个基于iframe的Facebook应用程序,我只想做的是,只要有人直接点击该应用程序的URL, http://mysite.com都必须重定向到该应用程序的我的Facebook画布URL,例如http://apps.facebook.com/我的网站 这似乎很简单,但不幸的是它没有在我的脑海中点击

任何帮助,将不胜感激

编辑

该应用程序在codeigniter中

编辑

htaccess的

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

php_value error_reporting 7
php_flag display_errors On
php_value auto_prepend_file prepend.php

说我的域名是

http://abc.com/mysitefolder

我的Facebook应用程序链接是

http://apps.facebook.com/myappname

请也考虑http和https转换

也是guyz的一个建议,就像您看到的那样,在htaccess中使用prepend只是为了获取某些日期时间的用户时区,这样做很好吗? 该文件实际上是在每次会话首次访问该网站时为用户设置一个Cookie

最好的问候Junaid

来自Facebook的应用程序的任何画布页面都将定义$_REQUEST['signed_request'] 您可以检查此请求变量是否存在,如果未设置,请重定向到Facebook。

据我所知,没有任何服务器端代码可以执行此操作...那么又怎么可能发生,因为这一切都发生在前端,因此您可以使用javascript这样

if(window!=window.top){i am iframed now redirect or w/e you wanna do}

由于您要将域名重定向到应用程序,而不是其他方式,因此该应用程序位于iFrame中的事实无关紧要。

我认为最好的方法是使用.htaccess。 这意味着您可以使用诸如mydomainname.com/mypagename/之类的自定义URL,它们将重定向到apps.facebook.com/myappname/mypagename/,因此您可以更轻松地宣传您的应用程序。 另一个好处是您不必依赖Javascript。 有些人(数量很少)将其关闭,但是为什么要解析所有PHP代码来做到这一点呢?

因此,您可以做的是拥有根域“ blank”,并且在.htaccess文件中仅包含以下内容:

RewriteEngine on
RewriteRule ^$ http://www.mydomainname.com/ [R=301,L,QSA]
RewriteRule ^/(.*) http://www.mydomainname.com/$1 [R=301,L,QSA]

QSA还将查询参数附加到目标URL,例如“?ref = email”。

当然,如果您将应用程序代码保留在相同的域中,则在根目录中,您实际上不需要执行任何操作,只需调整身份验证代码即可。

如果这对您不起作用,请向我们提供更多详细信息:

  • 应用程序在哪里“生活”
  • 如果应用程序位于mydomainname.com中,那么直接访问URL会发生什么?
  • 您如何进行身份验证?

显然,代码有帮助。

除非mydomainname.com并非特定于该应用程序,否则建议将实际的应用程序托管在子域中。 实际上,无论如何,都应该帮助您进行组织。 或者,您可能还希望通过Facebook登录选项使该应用程序可作为网站使用。

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM