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
93 lines
2.3 KiB
6 years ago
|
<?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);
|
||
|
}
|
||
|
|
||
|
}
|