Yahoo APIでOAuthを利用してみる 2
Yahooのウォッチリスト取得に成功しました!
appidは要らないみたいですね~。
http://www.php.net/manual/ja/oauth.examples.fireeagle.php
を参考にyahooで動くように変更してみました。
是非使ってみてください。
<?php
$req_url = 'https://auth.login.yahoo.co.jp/oauth/v2/get_request_token';
$callback_url = 'このファイルのURLです!';
$authurl = 'https://auth.login.yahoo.co.jp/oauth/v2/request_auth';
$acc_url = 'https://auth.login.yahoo.co.jp/oauth/v2/get_token';
$api_url = 'http://auctions.yahooapis.jp/AuctionWebService/V2/closeWatchList';
$conskey = 'your_consumer_key';// yahooで取得したconsumer key
$conssec = 'your_consumer_secret';// yahooで取得したconsumer secret
session_start();
// セッションの state の値が1の場合、次のリクエストには oauth_token の値が含まれているはずである
// やり直す時は stateを 0 にします。
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
// OAUTH_AUTH_TYPE_AUTHORIZATION に変更
// ヘッダーに Authorization: OAuth で送信します。
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->enableDebug();
if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
// callback urlを指定。
$request_token_info = $oauth->getRequestToken($req_url,$callback_url);
$_SESSION['secret'] = $request_token_info['oauth_token_secret'];
$_SESSION['state'] = 1;
header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token']);
exit;
// ここでYahooの認証へ移動します!
} else if($_SESSION['state']==1) {
// Yahoo戻ってくると
// $callback_url?oauth_token=xxxxxxx&oauth_verifier=xxxx の形で帰ってきます!
$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'];
}
// var_dump($_SESSION);
$oauth->setToken($_SESSION['token'],$_SESSION['secret']);
$oauth->fetch($api_url);
// $json = json_decode($oauth->getLastResponse());
print_r($oauth->getLastResponse());
// 無事終了したウォッチリストデータを取得できました!
} catch(OAuthException $E) {
print_r($E);
}