https://github.com/elstc/twitter_kit/tree/2.0
database.phpにコンシューマキーなどの設定を書く
public $twitter = array(
'datasource' => 'TwitterKit.TwitterSource',
'oauth_consumer_key' => 'CAIFwaaaaaaaaaa80qZBMQ',
'oauth_consumer_secret' => 'GaJeqgkiB31taaaaaaaaaaa7aofseascV4kWNMMuE',
'oauth_callback' => '/twitter_kit/oauth/callback/',
);
twitter_usersテーブルを作成する
./cake schema create -p TwitterKit
コントローラの$componentsに、'TwitterKit.Twitter'を追加する
public $components = array(
'DebugKit.Toolbar',
'Session',
'Auth' => array(
'loginRedirect' => array('controller' => 'posts', 'action' => 'index'),
'logoutRedirect' => array('controller' => 'posts', 'action' => 'index'),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'mail')
),
),
),
'TwitterKit.Twitter'
);
コントローラーにログイン、ログアウトメソッドをつくる
public function login(){
if ($this->request->is('post')) {
if ($this->Auth->login()) {
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
$this->set_twitter_options();
}
/**
* twitterログイン用オプションのセット
*/
private function set_twitter_options(){
$linkOptions = array();
if (!empty($this->params['named']['datasource'])) {
$linkOptions['datasource'] = $this->params['named']['datasource'];
}
if (!empty($this->params['named']['authenticate'])) {
$linkOptions['authenticate'] = $this->params['named']['authenticate'];
}
$linkOptions['loading'] = 'Loading...';
$linkOptions['login'] = 'twitterでログイン';
$this->set('linkOptions', $linkOptions);
}
public function logout(){
$this->redirect($this->Auth->logout());
}
コントローラーでJsヘルパーと、Twitterヘルパーを読み込む
public $helpers = array('Js', 'TwitterKit.Twitter');
ビュー(users/login.ctp)をつくる
<p><?php echo $this->Session->flash('auth'); ?></p> <?php if (!$this->Session->check('Auth.User')):?> <div> <?php echo $this->Form->create('User', array('inputDefaults' => array('label' => false))); ?> <table> <tr> <th>ユーザーID</th> <td><?php echo $this->Form->input('mail');?></td> </tr> <tr> <th>パスワード</th> <td><?php echo $this->Form->input('password');?></td> </tr> </table> <?php echo $this->Form->end(__('Login')); ?> </div> <p><?php echo $this->Html->link('Do you forget a password?', array('controller' => 'users', 'action' => 'pass_forget'))?></p> <?php echo $this->Twitter->oauthLink($linkOptions); ?> <?php echo $this->Twitter->Js->writeBuffer(); ?> <?php else:?> <?php echo $this->Html->link('Logout', array('controller' => 'users', 'action' => 'logout'))?> <?php endif; ?>