Pocket
LINEで送る

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; ?>
Pocket
LINEで送る


コメントください

関連記事

プログラミング

cakePHP2 – 多言語化

多言語化します。 cakephpマニュアルのこのページに説明が書いてあ 続きを読む …

プログラミング

Go言語によるビットコインのフルノード実装btcdを調べる(2)

btcdを実行した際のプログラムの流れを最初から確認してみます。 se 続きを読む …

%d人のブロガーが「いいね」をつけました。