アフィリエイト広告を利用しています

2011年12月09日

twitterのアカウントでログインする方法 PHP

最近よく見かける「twitter」のアカウントでサイトにログインする方法です。
twitteroauthというのを使うと割と簡単にできます。

1.twitteroauthをダウンロード
下記URLへ移動。「ZIP」を押してダウンロードする。
https://github.com/abraham/twitteroauth



※「twitteroauth」というフォルダだけ使用します

2.twitterアプリを登録
下記URLへ移動。twitterアカウントでログインし、開発者ページへ移動します。
(twitterのメニューからは、設定→アプリ連携タブ→「画面右の開発者はこちらから…」のリンクで行けます)
https://dev.twitter.com/apps

My applicationsの画面、右側の「Create a new application」というボタンをクリック。
アプリの登録画面になるので、項目を入力(後から変更できます)。

「Callback URL」はtwitter_login.phpのURLにします。
※例「http://xxx.com/twitter_login.php」など

画面下のCreate your Twitter Applicationボタンで完了

↓こんな感じで入力


登録後、発行されたConsumer KeyとConsumer Secretをメモしておきます。

3.ログイン画面とログイン処理のphpファイルを作る
以下のように配置します。
 login.php    :ログイン画面(作る)
 twitter_login.php:ログイン処理(作る)
 twitteroauth(フォルダ)
  ├OAuth.php    :ダウンロード(変更しない)
  └twitteroauth.php :ダウンロード(変更しない)

login.phpは、
・セッションの中身を表示    ( echo $_SESSION['user_id'] )※session_start()を忘れずに
・twitter_login.phpへのリンク ( <a href="twitter_login.php">twitterログイン</a> )
が入っていればよいでしょう。

メインはtwitter_login.phpの内容です。
twitteroauthを使って認証します。

↓twitter_login.phpここから

<?php
//セッション開始
session_start();

//twitteroauth.phpを読み込みます。
//「require_once('OAuth.php')」はtwitteroauth.phpの中でしています。

require_once('twitteroauth/twitteroauth.php');

//Twitterアプリケーション申請で取得したコンシューマ key をセット(※xxxxxにセット)
$consumer_key = 'xxxxx';

//Twitterアプリケーション申請で取得したコンシューマ secret をセット(※xxxxxにセット)
$consumer_secret = 'xxxxx';

//twitterで認証されたら、状態を「returned」にする
if ($_REQUEST['oauth_token'] != NULL && $_SESSION['oauth_state'] === 'start') {
$_SESSION['oauth_state'] = $state = 'returned';
}

//未認証の場合は認証のリクエストを飛ばす。認証済みの場合twitterのIDを取得する。
switch ($state){
default:

$to = new TwitterOAuth($consumer_key, $consumer_secret);

$tok = $to->getRequestToken();

//Tokenをセッションに格納
$_SESSION['oauth_request_token'] = $token = $tok['oauth_token'];
$_SESSION['oauth_request_token_secret'] = $tok['oauth_token_secret'];
$_SESSION['oauth_state'] = "start";

//authorization URL を生成
$request_link = $to->getAuthorizeURL($token);

header("Location: $request_link");
break;

case 'returned':

if ($_SESSION['oauth_access_token'] === NULL && $_SESSION['oauth_access_token_secret'] === NULL) {

$to = new TwitterOAuth($consumer_key, $consumer_secret, $_SESSION['oauth_request_token'], $_SESSION['oauth_request_token_secret']);

$tok = $to->getAccessToken();

//Tokenをセッションに格納
$_SESSION['oauth_access_token'] = $tok['oauth_token'];
$_SESSION['oauth_access_token_secret'] = $tok['oauth_token_secret'];

//TwitterのID、名前をセッションに格納
$_SESSION['user_id'] = $tok["user_id"];
$_SESSION['user_name'] = $tok["screen_name"];
}

header("location: login.php.php");
}
?>

↑twitter_login.phpここまで

これでlogin.phpのリンクからtwitterのアカウントでログインできるようになります。
【このカテゴリーの最新記事】
posted by サム at 11:33 | Comment(0) | プログラム開発
この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント: 必須項目

認証コード: 必須項目

※画像の中の文字を半角で入力してください。

カテゴリアーカイブ
最新記事
<< 2024年11月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
タグ
検索
リンク集
プロフィール
ファン