1. 概要とインストール
この拡張機能は、OAuth コンシューマーとプロバイダー間のバインディングを提供します。 OAuth は、HTTP 上に構築された認証プロトコルで、アプリケーションがユーザー名とパスワードを保存せずにデータに安全にアクセスできるようにします。
PECL/oauth には PHP 5.1 以降、および ext/hash および ext/pcre が必要です。
ビルド時に PECL/oauth が選択されている場合は、オプションで libcurl が必要です。 libcurl 構成を使用する場合は、HTTPS サポートを構築する必要があります。
この PECL 拡張機能のインストールに関する情報は、マニュアルの「PECL 拡張機能のインストール」というタイトルの章に記載されています。
2. 使用例
<?php $req_url = 'https://fireeagle.yahooapis.com/oauth/request_token'; $authurl = 'https://fireeagle.yahoo.net/oauth/authorize'; $acc_url = 'https://fireeagle.yahooapis.com/oauth/access_token'; $api_url = 'https://fireeagle.yahooapis.com/api/0.1'; $conskey = 'your_consumer_key'; $conssec = 'your_consumer_secret'; session_start(); // 当 state=1 则下次请求应该包含一个 oauth_token 。 // 如果没有则返回 0 if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0; try { $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI); $oauth->enableDebug(); if(!isset($_GET['oauth_token']) && !$_SESSION['state']) { $request_token_info = $oauth->getRequestToken($req_url); $_SESSION['secret'] = $request_token_info['oauth_token_secret']; $_SESSION['state'] = 1; header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']); exit; } else if($_SESSION['state']==1) { $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']); $access_token_info = $oauth->getAccessToken($acc_url); $_SESSION['state'] = 2; $_SESSION['token'] = $access_token_info['oauth_token']; $_SESSION['secret'] = $access_token_info['oauth_token_secret']; } $oauth->setToken($_SESSION['token'],$_SESSION['secret']); $oauth->fetch("$api_url/user.json"); $json = json_decode($oauth->getLastResponse()); print_r($json); } catch(OAuthException $E) { print_r($E); } ?>
3. 関連関数
oauth_get_sbs — 署名文字ベース文字列を生成
oauth_urlencode — URI を RFC 3986 仕様にエンコードする
4. 関連クラスとそのメンバー関数
OAuth クラス
OAuth ::__construct — 新しい OAuth オブジェクトを作成します
OAuth::__destruct — デストラクター
OAuth::disableDebug — 詳細なデバッグをオフにする
OAuth::disableRedirects — リダイレクトをオフにする
OAuth::disableSSLChecks — SSL チェックをオフにする
OAuth::enableDebug — 詳細デバッグを有効にする
OAuth::enableRedirects — リダイレクトを有効にする
OAuth::enableSSLChecks — SSL チェックを有効にする
OAuth::fetch — OAuth で保護されたリソースを取得する
OAuth::generateSignature — 署名を生成する
OAuth::getAccessToken — アクセストークンを取得する
OAuth::getCAPath — CA 情報を取得する
OAuth::getLastResponse — 最後の応答を取得する
OAuth::getLastResponseHeaders — 最後の応答を取得する ヘッダー情報
OAuth:: getLastResponseInfo — 最後の応答に関する HTTP 情報を取得します
OAuth::getRequestHeader — OAuth ヘッダー文字列署名を生成します
OAuth::getRequestToken — リクエスト トークンを取得します
OAuth::setAuthType — 承認タイプを設定します
OAuth::setCAPath — CA パスと情報を設定します
OAuth::setNonce — 後続のリクエストの nonce フラグを設定します
OAuth::setRequestEngine — ターゲットリクエストエンジンを設定します
OAuth::setRSACertificate — RSA 証明書を設定します
OAuth::setSSLChecks — 特定の SSL リクエスト チェックを調整します
OAuth::setTimestamp — タイムスタンプを設定します
OAuth::setToken — トークンとシークレットを設定します
OAuth::setVersion — OAuth バージョンを設定します
OAuthProvider クラス
OAuthProvider::addRequiredParameter — 必須を追加しますパラメータ
OAuthProvider::callconsumerHandler — ConsumerNonceHandler コールバック関数を呼び出す
OAuthProvider::callTimestampNonceHandler — timestampNonceHandler コールバック関数を呼び出す
OAuthProvider::calltokenHandler — tokenNonce ハンドラー コールバック関数を呼び出す
OAuthProvider::checkOAuthリクエスト — Oauth リクエスト
OAuthProvider:: をチェックします__construct — 新しい OAuthProvider オブジェクトを作成します
OAuthProvider::consumerHandler — ConsumerHandler ハンドルのコールバック関数を設定します
OAuthProvider::generateToken — ランダムなトークンを生成します
OAuthProvider::is2LeggedEndpoint — LeggedEndpoint
OAuthProvider: :isRequestTokenEndpoint — isRequestTokenEndpoint を設定します
OAuthProvider::removeRequiredParameter — 必須パラメーターを削除します
OAuthProvider::reportProblem — 問題を報告します
OAuthProvider::setParam — パラメーターを設定します
OAuthProvider::setRequestTokenPath — リクエスト トークン パスを設定します
OAuthProvider::timestampNonceHandler — タイムスタンプNonceHandlerハンドルを設定するコールバック関数 OAuthProvider::tokenHandler — tokenHandler ハンドルを設定するコールバック関数 OAuthException クラス OAuthException — OAuthException クラス