簡體   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