Yahoo APIは、Yahoo!デベロッパーネットワークが提供するWeb APIで、天気情報や地図情報、ショッピング情報など、Yahoo! JAPANが持つ多様なデータを無料で活用できるサービスです。プログラミング初心者でも比較的扱いやすく、PHPやPythonなどのプログラミング言語を使って、自分の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やプログラミングに関するコラム
Photoshopで文字入れする方法と入力テキストの編集方法
写真を切り抜いてコラージュを作る方法とおすすめアプリ・ツールを紹介
【Xcode】シミュレーター(Simulator)の起動方法とエラー対処法を解説
Photoshopの無料筆ブラシをダウンロードする方法やおすすめを紹介
KeynoteとPowerPointの違いや変換方法などから徹底比較
php.iniファイルはどこにある?OS別に設定ファイルの場所を確認する方法
イラレ(Illustrator)の遠近グリッドの使い方を簡単に解説
HTMLで"が文字化けする原因と解決方法を解説
Vimのコマンドの使い方や基本的な操作方法を解説
ITやプログラミングに関するニュース
株式会社ジェイフィールがクボタ社事例セミナーを開催、対話を通じたエンゲージメント向上策を紹介
株式会社スーツが法務向けウェビナーを開催、プロジェクト管理による生産性向上を解説
株式会社NintがEC事業者向けセミナーを開催、年商10億円のブランディング戦略を解説
株式会社M&Aナビがウェビナー開催、吸血型M&Aの手口とリスクを徹底解説
フォアスカウト・テクノロジーズがウェビナー開催、管理外デバイスのリスクと可視化による防御策を解説
株式会社Scene Liveがウェビナー開催、データが導くコールマネジメントを解説
FOOD STYLE Kyushu実行委員会が無料セミナーを開催、生成AI活用術やブランド構築法を解説
アライドアーキテクツ株式会社が春節対策ウェビナーを開催、REDとKOC活用戦略を解説
株式会社セミナーインフォが金融犯罪対策セミナーを開催、特殊詐欺の最新手口と対策を解説
APPLE TREEが無料ウェビナー開催、Markforged製品の導入事例を解説




