前回は、認証されたRequestTokenを取得する方法を書いたので、AccessTokenを取得する方法について書きたいと思います。
mb_http_output("utf-8"); require_once('HTTP/Request.php'); //urlの設定 $url = "https://www.google.com/accounts/OAuthGetAccessToken"; $method = "GET"; $params["oauth_consumer_key"] = "anonymous"; $params["oauth_nonce"] = md5(microtime().mt_rand()); $params["oauth_signature_method"] = "HMAC-SHA1"; $params["oauth_signature"] = ""; $params["oauth_timestamp"] = time(); $params["oauth_token"] = rawurlencode($_GET["oauth_token"]); $params["oauth_verifier"] = rawurlencode($_GET["oauth_verifier"]); $params["oauth_version"] = "1.0"; $params["oauth_signature"] = make_Signature_Base_String($method,$url,$params); $params["oauth_signature"] = base64_encode(hash_hmac("sha1" ,$params["oauth_signature"] ,"anonymous&".前々回取得したoauth_token_secret ,true) ); $request = new HTTP_Request(); $request->setURL($url); $request-> addHeader("Authorization"," OAuth"); $request-> addQueryString("oauth_consumer_key",$params["oauth_consumer_key"],false); $request-> addQueryString("oauth_nonce",$params["oauth_nonce"],false); $request-> addQueryString("oauth_signature_method",$params["oauth_signature_method"],false); $request-> addQueryString("oauth_signature",$params["oauth_signature"],false); $request-> addQueryString("oauth_timestamp",$params["oauth_timestamp"],false); $request-> addQueryString("oauth_token",$params["oauth_token"],true); $request-> addQueryString("oauth_verifier",$params["oauth_verifier"],true); $request-> addQueryString("oauth_version",$params["oauth_version"],false); //メソッドをセット $request->setMethod($method); //リクエストを実行 $result = $request->sendRequest(); |
上を実行することによって、$resultに「oauth_token=hoge&oauth_token_secret=foo」みたいな感じで結果が返ってくるんだけど、返ってきたoauth_token、oauth_token_secretを使ってAPIの問い合わせを行ってもエラーが発生するんだよなー。
なぜだろー??
0 コメント:
コメントを投稿