OAuth認証に挑戦してみた。

参考サイト:http://speit.blog78.fc2.com/blog-entry-50.html
まったく同じこと言ってるかもですが、整理するためにもう一度!




http://twitter.com/oauth_clients
でアプリケーションの登録を行う

だいたいこんな感じ↓


変更したい場合はここから変更できます
http://twitter.com/oauth_clients



で、必要なソースをダウンロード+作成
・OAuth.php
・twitteroauth.php


・index.php



<?php
session_start
();
echo(
$_SESSION['username']);?>


・myCode.php



<?php//セッションを有効にするsession_start();
//////////Twitter OAUTH/////////////////////////
////////////////////////////////////////////////
// twitterOAuth を読み込む
require_once('twitter/twitteroauth.php');
/* Twitterアプリケーション瑞ソで取得したコンシューマ key */$consumer_key = 'コンシューマ key';//変更

/* Twitterアプリケーション瑞ソで取得したコンシューマ secret */
$consumer_secret = 'コンシューマ secret';//変更

/* 状態 */
$state = $_SESSION['oauth_state'];
/* oauth_token がセットされているかをチェック */$session_token = $_SESSION['oauth_request_token'];
/* oauth_token がセットされているかをチェック */$oauth_token = $_REQUEST['oauth_token'];

/* Set section var */$section = $_REQUEST['section'];
/* PHP セッションをクリア */if ($_REQUEST['test'] === 'clear') {
session_destroy();
session_start();
}

if (
$_REQUEST['oauth_token'] != NULL && $_SESSION['oauth_state'] === 'start') {
$_SESSION['oauth_state'] = $state = 'returned';
}
/*
* どのプロセスにいるかによって処理を変える
*
* 'default': 新しいユーザにたいしてRequest Tokenをとりに行く
* 'returned': Twitterから認証されたユーザ
*/
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);

$content = 'Click on the link to go to twitter to authorize your account.';
$content .= '<br /><a href="'.$request_link.'">'.$request_link.'</a>';

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

case
'returned':

///* もし access tokens がすでにセットされている場合は、 API call にいく
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名をセッションに格納
$_SESSION['username'] = $tok["screen_name"];//もし変えたかったら変更?

//Topページへ戻る
header("Location: /");//変更?
} ?>


変更するとことは適当に変更して、サーバーにあげれば完成!


 ファイルの構造
・myCode.php
・index.php
 Twitter(ファイル)
  ┣・OAuth.php
  ┗・twitteroauth.php