我在hostgator.com有一個共享ssl的主機,我在public_html(root)目錄中上傳了codeIgnitor網站。我想開發一個網站以及Facebook應用程序。 運行facebook應用程序時,網站運行成功'登錄facebook',它給出了URL重定向錯誤。在codeIgnitor中使用共享SSL的Facebook應用程序
這是HTTP URL
url(Website): http://example.org/
和安全的網址是
https://in9.hostgator.in/~username/
在Facebook的應用程序的配置,
canvas url : http://example.org/
Secure Canvas URL : https://in9.hostgator.in/~username/ (Work in url)
當我運行的Facebook應用程序,Facebook的給出了一個錯誤:
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not permitted by the application configuration.
在應用程序中,沒有用於重定向或刪除根目錄中的index.php的.htaccess文件。
我遇到這個基地控制器代碼:
public function __construct()
{
parent::__construct();
$this->load->library("session");
$this->load->helper('cookie');
parse_str($_SERVER['QUERY_STRING'], $_REQUEST);
$CI = & get_instance();
$CI->config->load("facebook",TRUE);
$config = $CI->config->item('facebook');
$this->load->library('Facebook', $config);
}
/**
* Index function
* @access public
*
public function index()
{
$userId = $this->facebook->getUser();
// If user is not yet authenticated, the id will be zero
if($userId == 0){
// Generate a login url
$params = array(
'scope' => 'email,user_about_me, user_birthday, user_location');
$url = $this->facebook->getLoginUrl($params);
echo "<script type='text/javascript'>" . "top.location.href = '" . $url. "';</script>";
}
}
當我打印「$網址」,然後在查詢字符串REDIRECT_URL爲「http://in9.hostgator.in/~username/」,而不是重定向到HTTPS路徑。
我很困惑,代碼中的錯誤是什麼?或者一些錯誤的服務器配置或者什麼? Plz提前幫助thanx。
這是不可能的,因爲當Facebook應用程序重定向到服務器,然後他再次獲得相同的網址(應用程序),所以它有一個遞歸重定向問題。 – Rajnish 2013-04-08 15:54:14
@Rajnish,在示例代碼中,重定向只發生在應用程序尚未安裝時(用if($ userId == 0)保護),所以一旦用戶安裝應用程序,重定向應該停止。 – complex857 2013-04-08 16:01:21
我已經把這個代碼放在CI控制器中,它會繼續重定向。因爲這個CAS你可以給我們如何防止重定向。我也回顯腳本來安裝用戶配置文件。 – Rajnish 2013-04-08 16:33:18