2011-08-08 52 views
0

我試圖做出CakePHP的Twitter的組成部分,所以我可以登錄與Twitter並最終讓我的用戶張貼到Twitter爲好,這是我的組件:CakePHP的 - Twitter的組件

<?php 

class TwitterHelperComponent extends Object { 
    var $name = 'TwitterHelper'; 
    var $twitterObj; 

    function __construct() { 
     parent::__construct(); 
     require_once(APP.'vendors/twitter/EpiCurl.php'); 
     require_once(APP.'vendors/twitter/EpiOAuth.php'); 
     require_once(APP.'vendors/twitter/EpiTwitter.php'); 

     $this->twitterObj = new EpiTwitter(TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET); 
    } 

    function setOAuthToken($oauth_token) { 
     $this->twitterObj->setToken($oauth_token); 
     $token = $this->twitterObj->getAccessToken(); 
     $this->twitterObj->setToken($token->oauth_token, $token->oauth_token_secret); 

     return $twitter; 
    } 
} 
?> 

而且在我的bootstrap.php中的文件I放入下列:

define('TWITTER_CONSUMER_KEY', '*******'); 
define('TWITTER_CONSUMER_SECRET', '********'); 

以我控制器I設置twitterObj給視圖:

function home(){ 
     $this->layout = 'home'; 
     $this->set('twitter', $this->TwitterHelper->twitterObj); 
    } 

在我看來,我做到以下幾點:

<a class='twitter-button' href='<?php echo $twitter->getAuthenticateUrl(); ?>'></a> 

不過,我會在我的twitterObj觀點未定義的變量警告。我正在使用this Twitter的PHP庫:

此外,我的整個界面只是失去了重點,當我嘗試獲取URL時,它會失去所有樣式。

回答

1

我會建議在您的控制器中檢索URL,並通過該組傳遞。我不確定傳遞一個對象引用會如你所願。

+0

問題似乎是twitterObj沒有得到實例化,因爲我得到調用成員函數getAuthenticateUrl()在非對象錯誤 – 8vius

+0

不知道爲什麼會發生。如果你沒有得到任何其他錯誤,你不會打電話給你認爲你在打電話,因爲我上面看到的代碼應該實例化。 – Utoxin

+0

好吧,我拿出了__contruct函數,並且創建了一個函數,它將實例化twitterObj,並且我沒有定義類EpiTwitter,好像構造函數沒有做任何事情,並且之後App :: import不是做任何事情,因爲我用require_once替換了App :: imports並且它工作,好吧,它現在可以工作,因爲我現在有一個URL – 8vius