Skip to content

Instantly share code, notes, and snippets.

@sasezaki
Created July 20, 2010 15:43
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sasezaki/483132 to your computer and use it in GitHub Desktop.
Save sasezaki/483132 to your computer and use it in GitHub Desktop.
<?php
// $ zf enable config.provider Wozozo_Service_Twitter_Tool_Twitter
require_once 'Zend/Tool/Framework/Provider/Abstract.php';
class Wozozo_Service_Twitter_Tool_Twitter extends Zend_Tool_Framework_Provider_Abstract
{
const CONFIG_KEY = 'twitter';
const SITE_URL = 'http://twtter.com/oauth';
/**
* @var array|Zend_Config
*/
private $_config;
/**
* @var Zend_Service_Twitter
*/
private $_service;
public function update($msg)
{
$this->getService()->status->update($msg);
}
protected function getService()
{
if (!$this->_service) {
require_once 'Zend/Service/Twitter.php';
if (!$this->_config) {
$this->_config = $this->_loadConfig();
}
$this->_service = new Zend_Service_Twitter($this->_config);
}
return $this->_service;
}
/**
* .zf.ini
*
* twitter.username = "***"
* twitter.accessToken = "***"
* twitter.accessTokenSecret = "***"
* twitter.consumerKey = "***"
* twitter.consumerSecret = "***"
*/
private function _loadConfig()
{
$userConfig = $this->_registry->getConfig();
$key = self::CONFIG_KEY;
$twitterConfig = $userConfig->$key;
if ($accessToken = $twitterConfig->accessToken and
$accessTokenSecret = $twitterConfig->accessTokenSecret) {
require_once 'Zend/Oauth/Token/Access.php';
$token = new Zend_Oauth_Token_Access;
$token->setToken($accessToken);
$token->setTokenSecret($accessTokenSecret);
} else {
throw new Exception('require access token');
}
$config = array_merge(array('consumerKey' => $twitterConfig->consumerKey,
'consumerSecret' => $twitterConfig->consumerSecret,
'siteUrl' => self::SITE_URL
),
array('username' => $twitterConfig->username,
'accessToken' => $token)
);
return $config;
}
}
//non zf command
if (count(debug_backtrace())) return;
/** configure */
$username = ''
$accessToken = '';
$accessTokenSecret = '';
$consumerKey = '';
$consumerSecret = '';
/**************/
class Ext extends Wozozo_Service_Twitter_Tool_Twitter
{
public function setConfig($config)
{
$this->_config = $config;
}
}
require_once 'Zend/Oauth/Token/Access.php';
$token = new Zend_Oauth_Token_Access;
$token->setToken($accessToken);
$token->setTokenSecret($accessTokenSecret);
$oconfig = array('consumerKey' => $consumerKey ,
'consumerSecret' => $consumerSecret,
'siteUrl' => 'http://twitter.com/oauth',
);
$config = array_merge($oconfig, array('username' => $username, 'accessToken' => $token));
$twitter = new Ext();
$twitter->setConfig($config);
var_dump($twitter->getService()->status->update('test'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment