楽天ã¦ã§ããµã¼ãã¹APIã使ã£ã¦ã¹ã¼ãã¼å¿«é©ã«ååæ¤ç´¢ã楽ãã
ごきげんよう。APIチームのかわはら (@ooharabucyou) です。
今日は、楽天ウェブサービスAPIを利用してスーパー快適に楽天で買い物をしましょう。
みなさんは、楽天で買い物を楽しむ際に、まず検索をする場合が多いのではないでしょうか。しかし、時に、検索画面や商品画面があまりにリッチすぎると、ココロを痛めることもあるでしょう。もっと、シンプルに行きたい。そこで、楽天ウェブサービスAPIの出番です。
そして、どこのご家庭にもある curl を、お手元に用意しておいてください。さらに、おもむろにターミナルを開きます。
最も単純な検索は以下の様にできます。「うどん」を探しましょう。 ([YOUR APPID] は適宜アプリIDに置き換えてくださいね)
curl “https://app.rakuten.co.jp/services/api/IchibaItem/Search/20120723?applicationId=[YOUR APPID]&keyword=うどん”
以下の様な感じになります。出来立ての JSON Response でございます。
…。さて、問題は読みにくいことです。
ここで、同じくどこのご家庭にも有る、 python も活用ましょう。今年はへび年ですからね。 python にはデフォルトで JSON を整列してくれる。便利なモジュールがあります。
また、レスポンスデータ量が多いので、リクエストURLをいじってレスポンス件数と結果カラムを絞り込みましょう。
件数は最初の3件。結果カラムは、 itemName (商品名) ,mediumImageUrl(中サイズの画像),itemUrl(商品URL),shopName(ショップ名)くらいがあればよいでしょう。件数の指定は hitsパラメータで、 結果カラムの指定は elements でカンマ区切りでしたね。elements は最近のバージョンで追加された便利なもので、レスポンスを簡略化させるのに役立ちます。
curl “https://app.rakuten.co.jp/services/api/IchibaItem/Search/20120723?applicationId=[YOUR APPID]&keyword=うどん&hits=3&elements=itemName,mediumImageUrls,itemUrl,shopName” | python -mjson.tool
これでいいはずです。読むんじゃない。感じるのだ。
…。また問題が発生してしまいました。日本語が読めません。
公用語英語などと話題な弊社でありますが、残念ながら エスケープされた Unicode をスラスラと読めるほどの特殊能力は身につけておりませんでした。修行不足ですね。
そこで、みんな大好き PHP の出番です。どこのご家(ry PHP5.4以降 を用意しましょう。python や curl ことは一度忘れます。私はへび年の男ですが、それでも忘れます。このキュートでみんなが大好きなPHPを使います。
なお、この解説では、3月23日に出た PHP5.5beta2 を使っています。https:// でのリクエストになりますので、PHPのビルド時に –with-openssl を付けるのを忘れずに。
PHP5.4以降の json_encode() 関数には、JSON を整列するだけではなく、文字列のエスケープを回避したりするオプションが付いているのです。
データ取得は file_get_contents() 関数 を使います。PHPer の皆さんならお馴染みかと思いますが、http:// から始まる URL を指定すると、HTTP で取得した Contents を返してくれます。
本当は、もっとちゃんとやればエラーコードやヘッダを取得できるのですが、ワンライナーなので、無視します。くれぐれも実際に使う際は、用法用量をお守りください。
json_encode() の整列機能を使いたいので、一旦、レスポンスを json_decode() するのを忘れずに!!
こうして出来上がった、とてもシンプルなワンライナーがこちらです。
php -r “echo json_encode(json_decode(file_get_contents(‘https://app.rakuten.co.jp/services/api/IchibaItem/Search/20120723?applicationId=[YOUR APPID]&keyword=’.urlencode('うどん’).’&hits=3&elements=itemName,mediumImageUrls,itemUrl,shopName’)), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);”
結論としてPHPすごい。感動した。以下のようになります。求めていたものに近づきました。
残りの欠点としては、画像が見れませんね。いかにリッチから離れた世界で買い物を楽しもうと思っても、さすがに商品画像くらいはみたいですよね。文章だけで妄想を繰り広げるのは少し疲れます。
そこで使うのが jp2a です。このコマンドは、 jpeg 画像を asciiart にして表示してくれるというスグレモノなのです。
OS X をご利用の場合は、Mac Port や Homebrew で入ります。 Debian のパッケージにもなっているようなので apt-get でも入ると思います。
jp2a “画像URL”
ちょっと、荒くて見難いかもしれませんが、文字の大きさを極限まで小さくして、メガネを外せばなんとかなります。
こんな感じ。 (元は http://item.rakuten.co.jp/kijoan/362649/ こちらの商品です。うどんうどん。)
うまく見るには3歩下がります。快適ですね。日頃の運動不足の解消にも楽天ウェブサービスAPIは役立つわけです。
あとは、 気に入った商品のURLを open コマンドなどを使って開き、普通にブラウザを開いて買ってください。ね、快適でしょ。
—
今日はエイプリルフールなので、ちょっと変わったことをやってみました。といっても、今回紹介したコマンド実行例などは嘘ではないので、安心してお楽しみくださいませ。
TIPS: json を表示させるとき python を使いましたが psjon を使うと、ココロ踊るほどカラフルでいいですよー。やはりエスケープされてしまうので日本語は読めなかったりするのですが…。
- ksk-muda liked this
- sigh2 reblogged this from rakuten-webservice
- hal23 reblogged this from rakuten-webservice
- hal23 liked this
- rsk reblogged this from rakuten-webservice
- electronica02 reblogged this from rakuten-webservice
- rakuten-webservice posted this