PEARでTwitter等各種サービスにOAuthログインをする。(https SSL対応)
面倒な方は
http://logic.moo.jp/memo.php?cmd=download&data_id=780&file=780_1.zip
をダウンロードして(lib)フォルダをそのままコピーしてください。
https://twitter.com/apps
【新しいアプリケーションを追加】を押して、アプリ情報を入力して登録を完了させる。
登録完了後に表示される画面から
・Cunsumer Key ・Consumer secret ・Request token URL (フォローをリクエストしました) ・Access token URL ・Authorize URL
をメモしておく
後は下記コードにメモした情報をコピペすればOK($callback_url にはプログラムのURLをセットする。)
$path = './lib';
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
include 'HTTP/OAuth/Consumer.php';
$consumer_key = 'XXXXXXXXXX';
$consumer_secret = 'XXXXXXXXXX';
$get_request_token = 'https://twitter.com/oauth/request_token';
$get_access_token = 'https://twitter.com/oauth/access_token';
$get_authorize = 'https://twitter.com/oauth/authorize';
// $get_authorize = 'https://twitter.com/oauth/authenticate'; // 毎回出る
認証画面をskipしたい時
$callback_url = 'XXXXXXXXXX';
$oauth = new HTTP_OAuth_Consumer($consumer_key, $consumer_secret);
// ssl証明書
$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);
$oauth_request = new HTTP_OAuth_Consumer_Request;
$oauth_request->accept($http_request);
$oauth->accept($oauth_request);
$oauth_flag = false;
session_start();
if (empty($_SESSION['oauth_access_token']) && empty($_GET['oauth_verifier'])) {
// 1. 初回呼び出し時
$oauth->getRequestToken($get_request_token, $callback_url);
$_SESSION['oauth_request_token'] = $oauth->getToken();
$_SESSION['oauth_request_token_secret'] = $oauth->getTokenSecret();
$_SESSION['oauth_state'] = "start";
$auth_url = $oauth->getAuthorizeURL($get_authorize);
// header("Location: $auth_url"); // A. リダイレクト
print('<a href="'.$auth_url.'">'.$auth_url.'</a>'); // B. リンク表示
}
elseif( isset($_GET['oauth_verifier']) ){
// 2. サービスから帰ってきたとき
$oauth->setToken($_SESSION['oauth_request_token']);
$oauth->setTokenSecret($_SESSION['oauth_request_token_secret']);
$oauth->getAccessToken($get_access_token, $_GET['oauth_verifier']);
$_SESSION['oauth_access_token'] = $oauth->getToken();
$_SESSION['oauth_access_token_secret'] = $oauth->getTokenSecret();
$oauth_flag = true;
}
else{
// 3. 認証後にアクセスしたとき
$oauth_flag = true;
}
if ( $oauth_flag ){
// ここにやりたい事を記述
print '<h1>OAUTH OK !</h1>';
}