Base theme for LMMI Journal
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

93 lines
2.3 KiB

<?php
/**
* @author Albert Kozlowski <vojant@gmail.com>
* @license MIT License
* @link https://github.com/vojant/Twitter-php
*/
namespace TwitterPhp;
use \TwitterPhp\Connection\Application;
use \TwitterPhp\Connection\User;
require_once 'connection/ConnectionAbstract.php';
require_once 'connection/Application.php';
require_once 'connection/User.php';
/**
* Class TwitterRestApiException
*/
class RestApiException extends \Exception {};
/**
* Class RestApi
* @package TwitterPhp
*/
class RestApi
{
/**
* @var string
*/
private $_consumerKey;
/**
* @var string
*/
private $_consumerSecret;
/**
* @var string
*/
private $_accessToken;
/**
* @var string
*/
private $_accessTokenSecret;
/**
* @param string $consumerKey
* @param string $consumerSecret
* @param null|string $accessToken
* @param null|string $accessTokenSecret
* @throws TwitterRestApiException
*/
public function __construct($consumerKey,$consumerSecret,$accessToken = null,$accessTokenSecret = null)
{
if (!function_exists('curl_init')) {
throw new TwitterRestApiException('You must have the cURL extension enabled to use this library');
}
$this->_consumerKey = $consumerKey;
$this->_consumerSecret = $consumerSecret;
$this->_accessToken = $accessToken;
$this->_accessTokenSecret = $accessTokenSecret;
}
/**
* Connect to Twitter API as application.
* @link https://dev.twitter.com/docs/auth/application-only-auth
*
* @return \TwitterPhp\Connection\Application
*/
public function connectAsApplication()
{
return new Application($this->_consumerKey,$this->_consumerSecret);
}
/**
* Connect to Twitter API as user.
* @link https://dev.twitter.com/docs/auth/oauth/single-user-with-examples
*
* @return \TwitterPhp\Connection\User
* @throws TwitterRestApiException
*/
public function connectAsUser()
{
if (!$this->_accessToken || !$this->_accessTokenSecret) {
throw new TwitterRestApiException('Missing ACCESS_TOKEN OR ACCESS_TOKEN_SECRET');
}
return new User($this->_consumerKey,$this->_consumerSecret,$this->_accessToken,$this->_accessTokenSecret);
}
}