Yahoo APIの使い方やデータの取得方法を簡単に解説

Yahoo APIの使い方やデータの取得方法を簡単に解説

公開: 更新:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座

Yahoo APIは、Yahoo!デベロッパーネットワークが提供するWeb APIで、天気情報や地図情報、ショッピング情報など、Yahoo! JAPANが持つ多様なデータを無料で活用できるサービスです。プログラミング初心者でも比較的扱いやすく、PHPPythonなどのプログラミング言語を使って、自分のWebサイトやアプリケーションにYahooのデータを組み込めます。

しかし、Yahoo APIを初めて使う場合、どのように準備すればよいのか、どのようにリクエストを送ればデータを取得できるのか、などがわからず戸惑う方も多いでしょう。APIの仕組みやHTTPメソッドの理解が必要で、公式ドキュメントを読んでも具体的な実装イメージが湧きにくいことがあります。

この記事では、Yahoo APIの使い方について、必要なIDの取得方法からリクエストの送り方、実際のコード実装例まで、初心者の方にもわかりやすく解説していきます。



Yahoo APIで必要なIDを取得する方法

Yahoo APIを利用するには、まずYahoo! JAPAN IDとClient IDの2つのIDを取得する必要があります。これらのIDはYahoo APIを使うための認証情報として機能し、どのアプリケーションがAPIを利用しているかをYahoo側が把握するために使用されます。

それぞれの手順について、詳しく見ていきましょう。

Yahoo! JAPAN IDを取得する

Yahoo! JAPAN IDは、Yahoo! JAPANのサービスを利用するための基本的なアカウントです。Yahoo APIを使うためには、このYahoo! JAPAN IDが必須となります。

すでにYahoo! JAPANのサービス(Yahoo!メール、Yahoo!ニュースなど)を利用している場合は、そのIDをそのまま使用できます。Yahoo! JAPAN IDを持っていない場合は、Yahoo! JAPAN ID登録ページからメールアドレスを使用して新規登録できます。

登録手順は以下の通りです。

  • メールアドレスを入力する
  • 認証コードをメールで受け取る
  • パスワードと基本情報を入力する
  • 登録を完了する

これらの手順を完了すると、Yahoo! JAPAN IDが発行され、Yahoo!デベロッパーネットワークにアクセスできるようになります。

【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」

Client IDを取得する

Client IDは、Yahoo APIを利用するアプリケーションを識別するための固有の識別子です。アプリケーションIDとも呼ばれ、Yahoo API利用時のリクエストに必ず含める必要があります。

Client IDを取得するには、Yahoo! JAPAN IDでYahoo!デベロッパーネットワークにログインし、アプリケーションを登録します。登録手順は以下の通りです。

  • Yahoo!デベロッパーネットワークにアクセスする
  • 「新しいアプリケーションを開発」をクリックする
  • アプリケーションの種類を選択する(サーバーサイドまたはクライアントサイド)
  • アプリケーション名やサイトURLなどの情報を入力する
  • 利用規約に同意して登録を完了する

登録が完了すると、アプリケーション詳細ページにClient IDとシークレットが表示されるので、メモ帳などに保存しておきましょう。

Yahoo APIでリクエストを送る方法

Yahoo APIでデータを取得するには、HTTPリクエストを送る必要があります。リクエストにはGETメソッドとPOSTメソッドがあり、取得したいデータやAPIの仕様によってどちらを使うかが決まります。

リクエストを送る方法は、以下の2つです。

  • GETメソッドでリクエストする
  • パラメータを指定する

それぞれの方法について、具体的に解説していきます。

GETメソッドでリクエストする

GETメソッドは、リソース(情報)を取得するためのHTTPメソッドです。Yahoo APIの大半は情報を取得するためにあるので、GETメソッドを使うケースが多くなります。

GETメソッドでリクエストを送る場合、パラメータはURLの末尾にクエリストリングとして付加します。基本的なURLの構造は、以下の通りです。

https://APIのエンドポイント?appid=あなたのClient ID&パラメータ名=値

例えば、Yahooショッピングの商品検索APIでラーメンを検索する場合、以下のようなURLになります。

https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch?appid=dj00aiZpPUw4S1Z5cW9rZVk4WiZzPWNvbnN1bWVyc2VjcmV0Jng9NDk-&query=ラーメン

このURLをブラウザアドレスバーに貼り付けるか、プログラムから送信することによって、Yahoo APIからJSON形式またはXML形式でデータが返されます。返されたデータをプログラムで解析することによって、必要な情報だけを抽出できます。

【PR】『Python』を学べる企業・個人向けのプログラミングコース

パラメータを指定する

Yahoo APIでは、リクエスト時にパラメータを指定することによって、取得するデータの内容を絞り込んだり、ソート順を変更したりできます。パラメータはAPIの種類によって異なりますが、共通して使用される代表的なものがあります。

代表的なパラメータは、以下の通りです。

パラメータ名 説明
appid Client IDを指定する(必須)
query 検索キーワードを指定する
results 取得する件数を指定する(最大100件など)
start 取得開始位置を指定する
sort ソート順を指定する

例えば、Yahooショッピングで「イヤホン」というキーワードで100件の商品を取得する場合、以下のようにパラメータを組み合わせます。

https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch?appid=あなたのClient ID&query=イヤホン&results=100

パラメータの詳細については、各APIの公式ドキュメントで確認できます。APIによってサポートされているパラメータが異なるため、利用前に必ずドキュメントを確認しましょう。

Yahoo APIでデータを取得する実装例

Yahoo APIでデータを取得するには、実際にプログラミング言語を使ってリクエストを送り、返されたデータを処理する必要があります。このセクションでは、PHPとPythonを使った具体的な実装例を紹介します。

それぞれのコード例を見ながら、Yahoo APIの使い方を理解していきましょう。

PHPでYahooショッピングAPIのデータを取得する

PHPでYahoo APIを使う場合、file_get_contents関数またはcURL関数を使って、HTTPリクエストを送ります。返されたJSON形式のデータは、json_decode関数で配列に変換し、必要な情報を抽出できます。

以下は、Yahooショッピングで移住支援金対象の求人案件を取得する例です。

<?php
$url = 'https://job.yahooapis.jp/v1/furusato/jobinfo/?appid=あなたのClient ID&subsidyImmigration=1';
$response = file_get_contents($url);
$data = json_decode($response, true);

$count = $data['count'];

echo '<ul>';
for ($i = 0; $i < $count; $i++) {
    $title = $data['results'][$i]['title'];
    $url = $data['results'][$i]['receptionUrl'];
    echo '<li><a href="' . $url . '">' . $title . '</a></li>';
}
echo '</ul>';
?>

このコードでは、まずfile_get_contents関数でYahoo APIにリクエストを送り、JSON形式のレスポンスを取得します。次に、json_decode関数でJSONを連想配列に変換し、for文を使って各求人案件のタイトルとURLをリスト形式で出力しています。

返されたデータの構造はAPIによって異なるため、公式ドキュメントのレスポンスフィールドの説明を参考にしながら、必要なデータにアクセスしましょう。PHPの配列操作に慣れていれば、比較的簡単にYahoo APIのデータを扱えます。

PythonでYahooショッピングAPIのデータを取得する

PythonでYahoo APIを使う場合、requestsライブラリを使ってHTTPリクエストを送ります。返されたJSON形式のデータはjson.loads関数で辞書型に変換し、必要な情報を抽出できます。

以下は、Yahooショッピングで指定した「価格帯」と「キーワード」で商品を検索する例です。

import requests
import json

appid = 'あなたのClient ID'
item_name = 'イヤホン'
lowest_price = 1000
highest_price = 10000

url = f'https://shopping.yahooapis.jp/ShoppingWebService/V3/itemSearch?appid={appid}&price_from={lowest_price}&price_to={highest_price}&query={item_name}&results=100'

response = requests.get(url)
data = json.loads(response.content)

count = len(data['hits'])

for i in range(count):
    print('商品名:', data['hits'][i]['name'])
    print('価格:', data['hits'][i]['price'])
    print('商品URL:', data['hits'][i]['url'])
    print('---')

このコードでは、f文字列を使ってURLにパラメータを埋め込み、requests.get関数でリクエストを送っています。返されたJSONデータをjson.loads関数で辞書型に変換し、for文で各商品の名前、価格、URLを出力しています。

Pythonのrequestsライブラリは外部ライブラリのため、使用前にpip install requestsコマンドでインストールする必要があります。インストール後はPHPと同様に、比較的簡単な記述でYahoo APIのデータを取得できます。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 配属3ヶ月で30%の生産性向上を実現するいよぎんコンピュータサービスの新人研修に迫る - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する