2012-06-17 117 views
0

我需要從我的php網站共享一個頁面到用戶的Facebook牆。如果用戶沒有登錄到Facebook上,我的網站重定向到使用redirect_uri facebook graph api with cakephp

$user = $facebook->getUser(); 
    if($user) { 
     $result = $facebook->api(
      '/me/feed/', 
      'POST', 
      array('access_token' => $this->access_token, 'link'=>'google.com', 'message' => 'Test link') 
     ); 
     $this->Session->setFlash('Your link has been succesfully posted on your wall'); 
     $this->redirect($this->referer()); 
    }else { 
     $login_url_params = array(
      'req_perms' => 'publish_stream', 
      'redirect_uri' => 'localhost/pictrail' //thts the same path I gave to my facebook app 
     ); 
     $login_url = $facebook->getLoginUrl($login_url_params); 
     header("Location: {$login_url}"); 
     exit(); 
    } 

所以Facebook登錄頁面,當用戶沒有登錄到Facebook的..它重定向到Facebook的用戶登錄,隨後將其重定向到localhost/pictrail,無論我放在那裏的網址。我想重定向它說本地主機/ pictrail /圖像/參數...我怎麼能實現這一目標?我試過'localhost/pictrail/images/99',但沒有奏效。當用戶登錄Facebook時一切正常。

回答

0

您不能從Facebook重定向到localhost,因爲它不是有效的地址。

,我身邊有這樣的方式,發展,是編輯我hosts文件,並替換我的本地IP域。

www.example.com 127.0.0.1

然後你可以從你的Facebook應用程序重定向到www.example.com和它會使您的本地開發的版本。

務必將該域添加到本地服務器的虛擬主機或類似服務器上。


對不起,我誤解了你的問題。要更改Facebook重定向網址,您需要在Facebook應用中更改它。所以你必須將自定義字段傳遞給Facebook,然後再重新加載。

曾經使用過此一看,https://developers.facebook.com/docs/authentication/server-side/

+0

_「你無法從Facebook重定向到本地主機,因爲它不是一個有效的地址。」 _ - 不是真的,你_can_ - _following_重定向在瀏覽器中發生的,他知道本地主機是誰。 – CBroe