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のサンプルコードが参考になります。