WebAPI

ヤフーAPIの使い方 Yahoo!デベロッパーネットワークを使ってみよう

ヤフーのWebAPI Yahoo!デベロッパーズネットワークのWebAPIを利用してみました

無料で利用できるヤフーのWebAPIです

代表的なAPIは、Yahoo!ショッピングや飲食店やショッピング、各種施設などの地図情報です

その他にも利用できるAPIが用意されています

ヤフーAPIの使い方 Yahoo!デベロッパーネットワーク

Yahoo!デベロッパネットワークのWebAPIを使って、Yahoo!ショッピングの商品情報やYahoo!ロコの飲食店情報などの情報を取得し、Webサイトなどで利用することができます

自分のサイトの情報拡充やサイト内でお店の情報提供や検索に使うといったことができます

ぐるなびWebサービスの一般ユーザー向け無料APIの提供が終了しますので、Yahoo!デベロッパーネットワークの飲食店情報を取得できるAPIをお試ししてみました

ヤフーAPI YOLP(地図)のWebAPIを使ってみよう

Yahoo!デベロッパーネットワークのWebAPIにあるのがYOLP(地図)です

Yahoo!デベロッパーネットワーク YOLP(地図)

Yahoo! Open Local Platform(YOLP)は、Yahoo! JAPANがデベロッパー向けに提供する地図・地域情報のAPI・SDKです。ウェブページの制作はもちろん、スマートフォン向けアプリケーションの開発においても、多彩な地図表示、店舗・施設検索、ジオコーディング、ルート検索、標高データ取得などの豊富な機能をご活用いただけます。

こちらのサイトは、YOLPのYahoo!ローカルサーチAPIを使ってフリーワード検索した結果のレストラン・飲食店の詳細情報で作成したお試しサイトですので参考にしてください

お店・施設 スポット検索(自作サイトです)

YOLPのYahoo!ローカルサーチAPIは、飲食店だけでなく、ショッピング施設やレジャー施設、生活に利用する施設など、さまざまな店舗・施設の検索ができるWebAPIです

飲食店の場合、料理のジャンル、住所や電話番号、最寄りの駅、参考の予算、お店の情報サイトのURL(ぐるなびなど)、Yahoo!ロコのURL、代表的な写真、料理やメニューの写真、クーポンやお店からの情報などのデータが取得できます

WebAPIを使用したプログラミング例についてはこちらもご覧ください

ぐるなびAPIを使った例を説明しています

ヤフーAPIの使い方 Yahoo!デベロッパーネットワークを始めよう

ヤフーAPIの使い方 Yahoo!デベロッパーネットワーク

まずはこちら

Yahoo!デベロッパーネットワークのサイトです

Yahoo!デベロッパーネットワーク

Yahoo!Japanの利用できる技術情報が公表されています

その中でもWebAPIについてはこちらのAPIドキュメントをみてください

Yahoo!デベロッパーネットワーク APIドキュメント

ショッピングやYOLP(地図)、テキスト解析などが利用できます

飲食店などのお店や施設の情報を取得できるのはYOLP(地図)です

Yahoo!デベロッパーネットワーク YOLP(地図)

地図、地域情報の検索に利用できるのがこちらのAPIです

Yahoo!ローカルサーチAPI

ヤフーAPIの使い方 Yahoo!ローカルサーチAPI

Yahoo!ローカルサーチAPIは、店舗や施設、イベント、クチコミ情報などの地域・拠点情報(POI)を検索できるAPIです

検索対象は、全国の店舗・施設の電話帳データ、店舗オーナーなどからの投稿データで、地域・拠点情報の名称や業種などをキーワードで検索できます

都道府県などの住所コードや業種で絞り込み検索することもできます

WebAPIを呼び出すときのリクエストパラメータや、WebAPIからのレスポンスパラメータの詳細はこちらのYahoo!ローカルサーチAPIのページに掲載されています

Yahoo!ローカルサーチAPI

ヤフーAPIの使い方 Yahoo!デベロッパーネットワーク アプリケーション登録

ヤフーAPIの使い方 まずはアプリケーション登録

Yahoo!デベロッパーネットワークを利用して、アプリケーションを作成するには、「アプリケーションの管理」から、アプリケーションの登録が必要です

もちろんYahoo!Japanのアカウントは必要です

登録するアプリケーションの情報は

・WebAPIを利用する場所 アプリケーションの種類

サーバー上から利用するサーバーサイドか、スマホのアプリなどクライアントアプリから利用するクライアントサイドかを選びます

・アプリケーション利用者情報

個人または、法人・個人事業主を選びます

・アプリケーションの基本情報

アプリケーションの名前とサイトのURL、アプリケーションの説明などです

・ガイドラインを確認する

アプリケーションの開発を行う前に、必ずガイドラインを確認してください

ガイドラインに同意する方のみ利用開始できます

複数のアプリケーションを開発する場合は、アプリケーションごとに登録が必要になります

アプリケーションの登録を行うことで、ヤフーのWebAPIを利用する際に必要なクライアントIDと秘密鍵がもらえます

アプリケーションで利用する手順は「ご利用ガイド」にまとめられています

Yahoo!デベロッパーネットワーク ご利用ガイド

ヤフーAPIの使い方 ガイドライン・利用方法

「ソフトウェアに関する規則(ガイドライン)」、「WebAPIの商用利用について」はよく確認してください

また各WebAPIのページにある「Yahoo! Open Local Platformの利用方法」、「ショッピングWeb APIの利用方法」などもよく確認しておきおましょう

アプリケーションにはクレジット表示を行うことが必要です

クレジット表示を忘れないようにしましょう

画像やHTMLソースが用意されています

ヤフーAPIの使い方 商用利用とアフィリエイト利用

非商用目的のみに利用が認められているものですが、商用利用がすべて禁じられているわけではなく、商用利用する場合はお問い合わせ窓口から相談することが可能となっています

情報の使用により、お店やユーザーから利益を得るサービスを提供すると商用利用と判断されるようですが、アフィリエイトプログラムの利用については「開発のヒント」の中にバリューコマースの紹介もあり利用可能となっています

Yahoo!ショッピングAPIでは、バリューコマースのIDを設定したり、アフィリエイト料率を取得することも可能です

バリューコマース

ヤフーAPIの使い方 Yahoo!ローカルサーチAPIについて

ヤフーAPIの使い方 Yahoo!ローカルサーチAPIの飲食店

Yahoo!ローカルサーチAPIを使ってみて感じた特徴です

取得できる飲食店の情報の件数はぐるなびAPIに比べると少ないようです

Yahoo!ローカルサーチAPIで取得できる飲食店はYahoo!ロコで見ることができる店舗ではないかと思います

食べログやぐるなびのサイトでみてもわかりますが、登録されている飲食店の数がだいぶ違うと思います

検索キーワードのヒットのアルゴリズムによっても件数が少なくでているのかもしれませんが、食べログやぐるなびはネット予約できない店舗や基本情報と口コミぐらいしかない店舗、ユーザーが登録した店舗も多いのに比べると、登録件数が少ないのではないでしょうか?

得られる情報は、店舗から提供されている写真などが入っていますからよさそうです

ヤフーAPIの使い方 Yahoo!ローカルサーチAPIの施設検索

また、グルメ以外のジャンルもYahoo!ローカルサーチAPIでは指定可能で、ショッピング施設、レジャー施設、暮らしや生活に必要な施設の検索ができるところはぐるなびAPIにはない特徴です

電話帳に載るような施設は検索できるようです

様々な施設の情報が検索できるWebAPIとしてはGoogle Map APIがあります

キーワード検索が強力で取得できる店舗の件数も多く、公園や観光スポットなど様々な情報を取得することができ、口コミも写真も取得できます

しかし、有料のWebAPIなので若干使いにくいところがありました

Yahoo!ローカルサーチAPIは無料でジャンル指定も地域指定も可能です

ヤフーAPIの使い方 Yahoo!ローカルサーチAPIの使い方

YDLPのページには、WebAPIの使い方や、サンプルコード、ライブラリ集などのドキュメントのページもありますから必要に応じて参照してみてください

ヤフーAPIの使い方 Yahoo!ローカルサーチAPI 仕様

YDLPのAPI仕様は、URLやパラメータ一覧などこちらに公開されています

Yahoo! YDLP(地図)

Yahoo!ローカルサーチAPIのリクエストURLはこちら

https://map.yahooapis.jp/search/local/V1/localSearch

単純にキーワード検索するだけなら、これでOKです

https://map.yahooapis.jp/search/local/V1/localSearch?appid=<あなたのアプリケーションID>&query=回転寿司

ブラウザにこのURLを貼り付けて表示させるとどのようなデータが取得できるかわかります

飲食店のデータは、ぐるなび提供だったり、Yahoo!ロコ提供だったりするようで、レスポンスパラメータはお店によって若干ちがっていたりします

ヤフーAPIの使い方 Yahoo!ローカルサーチAPI 主なリクエストパラメータ

Yahoo!ローカルサーチAPIの主なリクエストパラメータについてです

利用してみて、API仕様に書いていないけれども気づいた注意点も記載しておきます

&query=

キーワード検索のクエリーを設定するパラメータです

キーワードをUTF-8にエンコードして設定しますが、半角スペースを入れないようにしないとならないようです

キーワードをmb_convert_kana()を使って全角化してから使っています

&gid=

店舗固有のIDで指定するとこのIDの店舗の情報を取得します

ちょっと利用してみたところで気づいたのは、データにダブりがあって、同じIDのデータが複数とれることがあること

写真など情報が有るデータと無いデータなどありますから、同じ店に対して複数の提供元があるのかもしれません

&groupにgidを指定するとまとめて表示される、&distinctにfalseを指定するとすべての店舗が表示されると書いてありますから、必要に応じて使い分けるようです

また、クエリーやジャンルなども合わせて指定する場合は、この店舗が検索されないクエリーや店舗のジャンルと違うジャンルを指定するとデータが取得できませんでした

and条件になっているようですから注意が必要です

&sort=

ソート結果の並び順を指定できます

&start=

検索結果中の何番目からのデータを取得するのかを指定します

&results=

検索結果から何件データを取得するかを指定します

&detail=

出力項目を簡易版か標準版か詳細版かを切り替えることができます

レスポンスパラメータのDetailの部分は詳細版で取得できました

&output=

出力をJSONでとるか、XMLでとるかを指定できます

&lon= &lat= &dist=

検索する中心位置、検索範囲の中心からの距離を指定できます

&ac=

住所コードまたは国コードを指定します

住所コードはJISのX0401

国コードなら日本はJP、都道府県なら01から47の2桁、市町村を指定するなら5桁です

&gc=

検索できる店舗や施設の業種コードが指定できます

YOLP業種コードが用意されています

大きな分類はこちらの4つで、この2桁で指定することも可能です

01:グルメ、02:ショッピング、03:レジャー、04:暮らし・生活

細かい分類を指定する場合は、それぞれの大分類の中に4桁のコードで分類が規定されています

ジャンルを指定しないとすべてのジャンルから検索されているようでした

他のパラメータ

他にも矩形範囲指定やクーポン・駐車場・クレジットカード・禁煙分煙・予約などの対応有無の指定、画像有無の指定、開店日時指定などあります

ヤフーAPIの使い方 Yahoo!ローカルサーチAPI 主なレスポンスパラメータ

Yahoo!ローカルサーチAPIの主なレスポンスパラメータについてです

レスポンスパラメータは、主なものはAPI仕様に記載されていますが、取得できるデータをみると記載されていないデータも多種ありました

データによって異なったり、ジャンルによって異なったりするようで、実際のレスポンスパラメータをみて、表示させたいものを使うといった使い方をしてみました

API仕様にきっちり記載されていなくて、データ提供元によって自由度があるのでしょうかね

ローカルサーチAPIのスキーマ記述(情報の構造)のページがありますから、みるとこのフィールドは1個だけとか、数の制限が規定されていないフィールドだとかわかります

ResultInfo
レスポンスのまとめの情報
 
 
ResultInfo->Status
リクエストの処理結果 正常終了は200
 
ResultInfo->Count
レスポンスに含まれるデータ件数
 
ResultInfo->Total
検索された結果の全件数
 
ResultInfo->Start
レスポンスに含まれるデータの開始位置
 
ResultInfo->Latency
レスポンス生成に要した時間
 
ResultInfo->Description
説明フィールドがありますが入っていないことが多いようです
 
ResultInfo->Copyright
コピーライトフィールドがありますがこちらも入っていないことが多いようです
 
Feature
検索結果1件ごとのデータ群です
API仕様に記載されているものが主な内容ですが、他にもあります
下記に記載していなものもあります
 
Feature->Gid
店舗に割り当てられたコードです
ID指定して検索する場合はこのコードを指定します
 
Feature->Name
店舗の名称
 
Feature->Description
店舗の説明用フィールドのようですがちょっと見た感じでは入っていないようでした
 
Feature->Categry 複数
ジャンルと同様の内容なので、ジャンルを使えばよさそうです
 
Feature->Geometry->Coodinates
店舗の位置情報です
経度緯度がカンマ区切りでまとめて入っています
 
Feature->Property->Address
店舗の住所です
住所を階層構造にしたデータも別に用意されていました
 
Feature->Property->Genre 複数
店舗、施設のジャンルです
ひとつの店舗に複数のジャンルが設定されるようになっています
 
Feature->Property->Station 複数
最寄り駅の路線名、駅名、出口、距離、徒歩何分、駅の位置
路線名は路線名というより、鉄道会社名のことが多いようです
複数の最寄り駅がある場合は複数設定されています
 
Feature->Property->Tel1
電話番号
 
Feature->Property->CatchCopy
お店の特徴をひところで表すキャッチコピーがはいっていてくれるとよいのですが、入ってなさそうです
 
Feature->Property->Price
Detailにランチやディナーの参考料金があります
こちらはフィールドだけかもしれないです
 
Feature->Property->AveragePriceComment
こちらもPrice同様
 
Feature->Property->LeadImage
お店の代表画像がある場合は設定されています
お店の外観や料理などの写真はDetailにもあります
 
Feature->Property->Coupon 複数
お店で使えるクーポン情報がある場合は設定されています
 
Feature->Property->Detail
このフィールドがお店の詳細情報です
ランチとディナーの参考価格、キャパシティ、画像情報や店舗からのメッセージ、店舗の対応状況のフラグ、人気の料理・アイテム、店舗サイトや予約サイトのURLなどが代表的なデータです
API仕様に記載されていなフィールドもいろいろあります
URLはぐるなび提供のデータならぐるなびのサイトが指定されているようです
Yahoo!ロコの店舗ページへのURLもこちらにあります
 
 

Yahoo!ローカルサーチAPI 備忘録<未解決> YOLP API

Yahoo!ローカルサーチAPIにfile_get_contents()でアクセスしてもファイル取得できなくなった?

今までは@file_get_contents()を使ってGETしていたのですが、いつからかファイルを取得できなくなっていました

URLをブラウザで直接みるとJSONファイルは出力されてきますが、PHPプログラム内からfile_get_contentsを使って取得しようとするとできません

JSONをXMLにしてもfile_get_contentsではできなくなっていました

XMLもURLをブラウザで直接見るとOKです

今まではfile_get_contentsでOKでしたが、できなくなってしまいました

いろいろ試してみたところfile_get_contents()は使わずに、outputはXMLにして、simplexml_load_file()を使ってみたところ、ファイルが取得できました

file_get_contnts()のcontentsパラメータの問題なのか?

Yahoo!の問い合わせでは技術的サポートはやっていないですし、まだよくわかりません