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); }