| <?php
class Home extends Controller {
function Home()
{
parent::Controller();
}
public function index()
{
// 画面の表示
$this->load->view('view_twitter.php');
if ( $this->input->post('send', TRUE) == '' ) {
return;
}
$consumer_key = '';
$consumer_key_secret = '';
// デフォルトのトークン
$tokens['access_token'] = NULL;
$tokens['access_token_secret'] = NULL;
// 保存されたトークンがある場合はそれを使う
$ret = file_get_contents( "./token.txt" );
if ( $ret != "" && $ret != "\t" ) {
$oauth_tokens = explode("\t",$ret);
$tokens['access_token'] = $oauth_tokens[0];
$tokens['access_token_secret'] = $oauth_tokens[1];
}
// ライブラリロード
$this->load->library('twitter');
// 認証( トークンが空の場合はブラウザで認証 )
$auth = $this->twitter->oauth(
$consumer_key,
$consumer_key_secret,
$tokens['access_token'],
$tokens['access_token_secret']
);
// 認証が有効かチェック
$check = $this->twitter->call('account/verify_credentials');
if ( property_exists( $check, "error" ) ) {
// 認証できていない場合は、新規認証
$tokens['access_token'] = NULL;
$tokens['access_token_secret'] = NULL;
$auth = $this->twitter->oauth(
$consumer_key,
$consumer_key_secret,
$tokens['access_token'],
$tokens['access_token_secret']
);
}
// 初回認証の処理
if ( isset($auth['access_token']) && isset($auth['access_token_secret']) )
{
// トークンを保存
file_put_contents(
"./token.txt",
$auth['access_token'] . "\t" . $auth['access_token_secret']
);
// 元々あった処理
if ( isset($_GET['oauth_token']) )
{
$uri = $_SERVER['REQUEST_URI'];
$parts = explode('?', $uri);
header('Location: '.$parts[0]);
return;
}
}
$this->twitter->call(
'statuses/update',
array('status' => $this->input->post('text', TRUE) )
);
}
}
| |