Yahoo! API トークンによるユーザ情報の取得

アクセストークンの発行、ユーザ情報の取得

アクセストークンの発行

PHP

$ch = curl_init(); // URL指定 $url = 'https://auth.login.yahoo.co.jp/yconnect/v2/token'; curl_setopt($ch, CURLOPT_URL, $url); // パラメタ設定 curl_setopt($ch, CURLOPT_POST, true); // 認証タイプ authorization_code $data['grant_type'] = 'authorization_code'; // Client ID $data['client_id'] = 'xxx...xxx'; // Client Secret $data['client_secret'] = 'xxx...xxx'; // リダイレクトURL(認可コード発行時に指定したコールバックURL) $data['redirect_uri'] = 'https://example.com/callback'; // 認可コード $data['code'] = 'xxxxxxxx'; curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); // ヘッダ設定 $headers = [ 'Content-type: application/x-www-form-urlencoded' ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); if (! empty($result)) { $response = json_decode($result, true); }

レスポンス

Array ( [access_token] => xxx...xxx [token_type] => Bearer [expires_in] => 3600 [id_token] => xxx...xxx [refresh_token] => xxx...xxx )

ユーザ情報の取得

以前はアクセストークンをPOSTで投げても動作したが、GETのみに変更された。

PHP

$ch = curl_init(); // アクセストークン $data['access_token'] = 'xxx...xxx'; // URL指定 $url = 'https://userinfo.yahooapis.jp/yconnect/v2/attribute?' . http_build_query($data); curl_setopt($ch, CURLOPT_URL, $url); // ヘッダ設定 $headers = [ 'Content-type: application/x-www-form-urlencoded' ]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $result = curl_exec($ch); curl_close($ch); if (! empty($result)) { $response = json_decode($result, true); }

レスポンス

Array ( [sub] => xxx...xxx [given_name] => 太郎 [given_name#ja-Kana-JP] => タロウ [given_name#ja-Hani-JP] => 太郎 [family_name] => 山田 [family_name#ja-Kana-JP] => ヤマダ [family_name#ja-Hani-JP] => 山田 [gender] => male [locale] => ja-JP [email] => taro@example.com [email_verified] => 1 [address] => [country] => jp [postal_code] => 150XXXX [region] => 東京都 [locality] => 新宿区 [formatted] => 東京都渋谷区 [birthdate] => 19XX [zoneinfo] => Asia/Tokyo [nickname] => taro [picture] => https://xxx...xxx.yimg.jp/xxx...xxx/xxx...xxx.png )

最新の記事

プロフィール

流されるままにウェブ業界で仕事しています。主にLAPP環境でPHPを書いています。最近はjQueryで遊んでいます。
※動作確認について