2011-08-08 32 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