[英]Facebook redirects to canvas url instead of the app on facebook
[英]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並非特定於該應用程序,否則建議將實際的應用程序托管在子域中。 實際上,無論如何,都應該幫助您進行組織。 或者,您可能還希望通過Facebook登錄選項使該應用程序可作為網站使用。
干杯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.