FC2ブログ
Request Tokenの取得

<?php
session_set_cookie_params(600);
session_start();

require_once("OAuth.php");

$Get_Request_Token = "https://auth.login.yahoo.co.jp/oauth/v2/get_request_token";
$To_Header = "yahooapis.jp";
$CONSUMER_KEY = "";
$CONSUMER_SECRET = "";
$method = "GET";
$oauth_callback = "";
$consumer = new OAuthConsumer($CONSUMER_KEY, $CONSUMER_SECRET);

// Setup OAuth request based our previous credentials and query
$params = array("oauth_callback" => $oauth_callback);
$request = OAuthRequest::from_consumer_and_token($consumer,
NULL,
$method,
$Get_Request_Token,
$params);

// Sign the constructed OAuth request using HMAC-SHA1
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, NULL);

// 取得 レスポンスパラメータを配列にする
$response = file_get_contents($request->to_url());
parse_str($response, $request_oauth);

// Request Token と Request Token Secret の保存
$_SESSION['oauth_token'] = $request_oauth['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_oauth['oauth_token_secret'];
session_write_close();

$xoauth_yahoo_mobile = "xoauth_yahoo_mobile="."";
header("Location: ".$request_oauth['xoauth_request_auth_url']);

?>


Access Tokenの取得(callback)

<?php
session_start();
require_once("OAuth.php");

$Get_Access_Token = "https://auth.login.yahoo.co.jp/oauth/v2/get_token";
$To_Header = "yahooapis.jp";
$CONSUMER_KEY = "";
$CONSUMER_SECRET = "";
$OAUTH_TOKENA = $_SESSION['oauth_token'];
$OAUTH_TOKENA_SECRET = $_SESSION['oauth_token_secret'];
$oauth_verifier = $_GET['oauth_verifier'];
$method = "GET";

$consumer = new OAuthConsumer($CONSUMER_KEY, $CONSUMER_SECRET);
$token = new OAuthConsumer($OAUTH_TOKENA, $OAUTH_TOKENA_SECRET);

// Setup OAuth request based our previous credentials and query
$params = array("oauth_verifier" => $oauth_verifier);
$request = OAuthRequest::from_consumer_and_token($consumer,
$token,
$method,
$Get_Access_Token,
$params);

// Sign the constructed OAuth request using HMAC-SHA1
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, $token);

// 取得 レスポンスパラメータを配列にする
$response = file_get_contents($request->to_url());
parse_str($response, $access_oauth);

// XML取得テスト マイ・オークション表示(ウォッチリスト・開催中のオークション)
$url = "http://auctions.yahooapis.jp/AuctionWebService/V2/openWatchList?start=1";
$token->key = $access_oauth['oauth_token'];
$token->secret = $access_oauth['oauth_token_secret'];

$request = OAuthRequest::from_consumer_and_token($consumer,
$token,
$method,
$url,
NULL);
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, $token);
$oauth_header = $request->to_header($To_Header);
$options = array(
"http" => array(
"method" => "GET",
"header" => $oauth_header,
)
);

$content = file_get_contents($url, FALSE, stream_context_create($options));
print $content;

?>

使用
OAuth.php

参考URL
Yahoo!デベロッパーネットワーク - OAuth?-?フロー
Yahoo!デベロッパーネットワーク - OAuth?-?OAuthを用いたAPIリクエスト
mixi Developer Center (ミクシィ デベロッパーセンター) ≫ Person & Friends API
phpでoauthを使ってtwitterする - post diary unless shoelaces.fasten?

一言
コピペだけなのにえらく時間かかったよ
Access Tokenの更新はまだ書いていない
次回からまたyahoo apiの書き写し
追記 1/25
関数化したら、なぜか取得できなくなった。なんでだ?
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS