How to integrate CakePHP-app to Facebook canvas -
i have problems integrating cakephp-app (2.3.8) facebook canvas. when load app-page in facebook, answer is:
the request has been black-holed error: requested address '/?fb_source=search&ref=ts&fref=ts' not found on server. i have defined in facebook's app settings canvas secure url is:
https://facebook.mydomain.com/ so page found facebook. (actually if cakephp's tmp/ directory not writable, facebook's app-page displays error message -> url @ least correct)
i have used facebook php-sdk integrating facebook. page works standalone page, integrating facebook canvas problem.
here config/facebook.php
$config = array( 'facebook' => array( 'appid' => '***********', 'secret' => '**********************' ) ); and here controller facebook related stuff:
public function login() { configure::load('facebook'); $appid = configure::read('facebook.appid'); $app_secret = configure::read('facebook.secret'); $facebook = new facebook(array( 'appid' => $appid, 'secret'=> $app_secret )); $loginurl = $facebook->getloginurl(array( 'scope' => 'user_birthday,user_location', 'redirect_uri' => base_url . 'books/facebook_connect', 'display' => 'popup' )); $this->redirect($loginurl); } public function facebook_connect() { configure::load('facebook'); $appid = configure::read('facebook.appid'); $app_secret = configure::read('facebook.secret'); $facebook = new facebook(array( 'appid' => $appid, 'secret'=> $app_secret )); $user = $facebook->getuser(); // , rest of function saving authenticated user database all tutorials have found pretty straightforward , make easy integrate facebook canvas. have not succeeded in getting simple "hello world"-page index.php , facebook php-sdk work. have tried cookies set true, didn't either.
this pretty broad question , must hard imagine wrong in case, if can find out or had suffered similar errors, please share knowledge.
update ! :
here var_dump($this->params); bookscontroller.php:
object(cakerequest)#6 (9) { ["params"]=> array(5) { ["plugin"]=> null ["controller"]=> string(5) "books" ["action"]=> string(5) "index" ["named"]=> array(0) { } ["pass"]=> array(0) { } } ["data"]=> array(2) { ["signed_request"]=> string(514) "//here long string hash" ["locale"]=> string(5) "en_gb" } (i didn't paste whole var_dump() here because lots of unnecessary information)
so understood need somehow validate signed_request facebook website working in facebook canvas? don't have clue how that... have implemented "my own" admin authentication system auth-components. know need fix there, somehow don't know start. moving parts...
is approach presented in answer below correct one? @ least fixed problem, mine didn't. mean is, key element in answer can transfer code? or if full picture, find out myself answer...
second update ! :
i unset($this->request->data['signed_request']) , $this->security->csrfcheck = false... didn't work. i'm missing?
the "blackhole" due security component. believe issue has been resolved @ question/answer: cakephp , facebook security component turned on
Comments
Post a Comment