CodeIgniter ile çalışmak için Facebook API require_login

2 Cevap php

Ben Facebook'un require_login kullanırsanız Şu anda, url ekleme sonsuz bir döngüye gitmek görünür. Benim tüm kontrol inşaat üzerine yaptığı bir FB_Controller devralan:

$this->facebook = new Facebook($this->API_KEY, $secret);
$this->uid = $this->facebook->require_login(); //Causes infinite loop!

Ben açıkça http://decider.dfgh.org/ask/index/ (burada sormak benim istenen varsayılan denetleyicisi) için Facebook'ta tuval geri arama URL ayarlamak veya başka bir 404 hatası almak zorunda kaldı. Ayrıca ben iframe oluşturma yöntemini kullanıyorum.

CodeIgniter ben tipik index.php kurtulmak için mod_rewrite, $ config ['uri_protocol'] = "REQUEST_URI", $ config ['enable_query_strings'] = TRUE var. Ben çalışmak için basit bağlama almak için ayarlamak zorunda son iki yapılandırmaları (gibi bir linke tıklayarak http://decider.dfgh.org/decide/ işe yaramaz, sadece geçerli sayfaya gidin olurdu).

2 Cevap

Ben sadece yönlendirme başlığı bağlı request_url veya PATH_INFO birine uri_protocol ayarlayın. Yani config.php var:

$config['uri_protocol'] = 
    (isset($_SERVER['HTTP_REFERER']) && 
     strpos($_SERVER['HTTP_REFERER'], 'apps.facebook.com') !== false) ? 
         "PATH_INFO" : "REQUEST_URI";

Güzel itiraf ama o inşaat.

Ben aynı şeyi yapmak benim yapılandırma dosyasına bu ekledi:

/* Facebook Connect hack */ if(isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'facebook.com') !== false) { $config['uri_protocol'] = 'PATH_INFO'; } else { $config['uri_protocol'] = 'REQUEST_URI'; }