OAuth librariesのひとつである「TwitterOAuth」について、サンプルコードからその使用方法を解説します。
<?php session_start(); require_once( 'twitteroauth/twitteroauth.php' ); require_once( 'config.php' ); // アクセス トークンが有効ではないならば、接続ページへのリンクを表示する if( empty( $_SESSION[ 'access_token' ] ) || empty( $_SESSION[ 'access_token' ][ 'oauth_token' ] ) || empty( $_SESSION[ 'access_token' ][ 'oauth_token_secret' ] ) ) { session_destroy(); echo '<a href="redirect.php">Sign in with Twitter</a>'; } else { // セッション変数からアクセス トークンを取得する $access_token = $_SESSION[ 'access_token' ]; // TwitterOAuthオブジェクトを クライアント証明とアクセス トークンから生成する $connection = new TwitterOAuth( CONSUMER_KEY, CONSUMER_SECRET, $access_token[ 'oauth_token' ], $access_token[ 'oauth_token_secret' ] ); // 認可されたユーザーのタイムラインを取得する $status = $connection->get( 'statuses/user_timeline', null ); // レスポンスを表示する var_dump( $status ); }
<?php define('CONSUMER_KEY', 'CONSUMER_KEY_HERE'); define('CONSUMER_SECRET', 'CONSUMER_SECRET_HERE'); define('OAUTH_CALLBACK', 'http://example.com/twitteroauth/callback.php');
<?php session_start(); require_once( 'twitteroauth/twitteroauth.php' ); require_once( 'config.php' ); // TwitterOAuthオブジェクトを クライアント証明から生成する $connection = new TwitterOAuth( CONSUMER_KEY, CONSUMER_SECRET ); // リクエスト トークンを取得する $request_token = $connection->getRequestToken( OAUTH_CALLBACK ); // リクエスト トークンをセッションに保存する $_SESSION[ 'oauth_token' ] = $request_token[ 'oauth_token' ]; $_SESSION[ 'oauth_token_secret' ] = $request_token[ 'oauth_token_secret' ]; switch( $connection->http_code ) { case 200: // Twitterの認可ページへリダイレクトする $url = $connection->getAuthorizeURL( $request_token[ 'oauth_token' ] ); header( 'Location: '.$url ); break; default: echo 'Could not connect to Twitter. Refresh the page or try again later.'; }
<?php session_start(); require_once( 'twitteroauth/twitteroauth.php' ); require_once( 'config.php' ); if( ! isset( $_REQUEST[ 'oauth_token' ] ) || $_REQUEST[ 'oauth_token' ] === $_SESSION[ 'oauth_token' ] ) { // TwitterOAuthオブジェクトを クライアント証明とアクセス トークンから生成する $connection = new TwitterOAuth( CONSUMER_KEY, CONSUMER_SECRET, $_SESSION[ 'oauth_token' ], $_SESSION[ 'oauth_token_secret' ] ); // アクセス トークンを取得する $access_token = $connection->getAccessToken( $_REQUEST[ 'oauth_verifier' ] ); // アクセス トークンをセッションに保存する $_SESSION[ 'access_token' ] = $access_token; // 不要となったリクエスト トークンを削除する unset( $_SESSION[ 'oauth_token' ] ); unset( $_SESSION[ 'oauth_token_secret' ] ); if( 200 == $connection->http_code ) { // 起点となるページへリダイレクトする header( 'Location: ./' ); return; } } session_destroy(); echo '<a href="redirect.php">Sign in with Twitter</a>';
ファイルのアップロードをサポートしています。
themattharris/tmhOAuth · GitHub
利用にあたっては、themattharris/tmhOAuth-examples · GitHubのサンプルコードが参考になります。