[eluser]takasia[/eluser]
Hi!
I need to use some PEAR libraries with my CI app (ver2), how to do it?
This code:
// require HTTP_OAuth
require_once('HTTP/OAuth/Consumer.php');
works fine in a single php file, outside CodeIgniter (PEAR is installed and working, I got what I need).
I tried this:
http://codeigniter.com/wiki/PEAR_integration/
but I keep getting something wrong, cannot get it working.
Cannot I just do this in the controller:
Code:
require_once('HTTP/OAuth/Consumer.php');
$this->my_model->tweetMessageFAN();
and then, this in model:
Code:
function tweetMessageFAN()
{
/* Consumer key from twitter */
$consumer_key = TWITTER_CONSUMER_KEY;
/* Consumer Secret from twitter */
$consumer_secret = TWITTER_CONSUMER_SECRET;
/* Callback url */
$callback_url = base_url().'dreams/share/';
/* Set up placeholder */
$content = "";
// source below changed to work with existing CI session!
try {
$oauth = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);
$consumer_request = new HTTP_OAuth_Consumer_Request;
$consumer_request->accept($http_request);
$oauth->accept($consumer_request);
if (!empty($_REQUEST['oauth_token']) && $this->session->userdata('oauth_state') === 'start') {
$session_data = array(
'oauth_state' => 'returned',
);
$this->session->set_userdata($session_data);
//clear $session_data
$session_data = array();
echo $this->session->userdata('oauth_state');
if (empty($this->session->userdata('oauth_request_token')) || empty($this->session->userdata('oauth_request_token_secret'))) {
$oauth->setToken($this->session->userdata('oauth_request_token'));
$oauth->setTokenSecret($this->session->userdata('oauth_request_token_secret'));
$oauth_verifier = $_REQUEST['oauth_verifier'];
$oauth->getAccessToken('https://twitter.com/oauth/access_token', $oauth_verifier);
$session_data = array(
'oauth_access_token' => $oauth->getToken(),
'oauth_access_token_secret' => $oauth->getTokenSecret(),
);
$this->session->set_userdata($session_data);
//clear $session_data
$session_data = array();
}
}
if (!empty($this->session->userdata('oauth_request_token')) && !empty($this->session->userdata('oauth_request_token_secret'))) {
$content = 'your account should now be registered with twitter. Check here:<br />';
$content .= '<a href="https://twitter.com/account/connections">https://twitter.com/account/connections</a>';
$oauth->setToken($this->session->userdata('oauth_request_token'));
$oauth->setTokenSecret($this->session->userdata('oauth_request_token_secret'));
$result = $oauth->sendRequest('https://twitter.com/account/verify_credentials.xml', array(), 'GET');
$content = $result->getBody();
} else {
$oauth->getRequestToken('https://twitter.com/oauth/request_token', $callback_url);
$session_data = array(
'oauth_access_token' => $oauth->getToken(),
'oauth_access_token_secret' => $oauth->getTokenSecret(),
'oauth_state' => "start"
);
$this->session->set_userdata($session_data);
//clear $session_data
$session_data = array();
$request_link = $oauth->getAuthorizeURL('https://twitter.com/oauth/authorize');
$content = 'Click on the link to go to twitter to authorize your account.';
$content .= '<br /><a href="'.$request_link.'">'.$request_link.'</a>';
}
} catch (Exception $e)
{
$content = $e->getMessage();
}
print_r($content);
}
It gots me blank screen....