2016年2月28日日曜日

楽天APIでJANコードからBOOKOFF価格を取得したい

はじめに

前回、楽天APIでBOOKOFFの価格を取得する方法を試してみました。前回の方法は、

「キーワードとshopCodeから商品リストを取得する」

というものでした。さらにAmazonの値段と比較したいとなると、タイトルをキーワードに与えて検索するだけではAmazonの商品と違うものがヒットする可能性があります。それでJANコードも指定してBOOKOFF価格を取得できないか試してみました。環境やAPIは前回と同じです。

以下、ゲームソフトの場合を試しています。

開発・実行環境

MacBook Pro
OSX El Capitan (10.11.3)
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

使用したAPI

楽天商品検索API (version:2014-02-22)

BOOKOFF取り扱い商品のJANコード

APIリファレンスを見てもJANコードを指定するようなパラメータは見当たりません。適当にゲームソフトを検索してみるとJANコードは下の画像のように表示されているので情報はあるようです。


そこで、
RakutenWebService::Ichiba::Item.search
の結果を見てみました。itemCaptionの項目が商品説明文なのですが、その中に含まれていました。例えば上のソフトの検索結果のitemCaptionは次のようになっています。

「ニンテンドーDS販売会社/発売会社:スクウェア・エニックス発売年月日:2010/03/04JAN:4988601006392機種:ニンテンドーDS国民的RPG「ドラゴンクエスト」シリーズ9作品目。物語の舞台は「天使界」。世界樹に女神の果実が実るとき、神の国への道が開かれる!それは天使界に伝わる言い伝え。しかし、ある日、恐ろしい事件が発生して・・・!?壮大な世界を冒険するという本来の魅力に加え、キャラクターカスタマイズや転職でき、多彩なキャラクター作りが楽しめます。さらにワイヤレス通信でのマルチプレイ、さまざまなサブストーリーを体験できる「クエスト」など新要素満載の充実した内容となっています。」

思いっきり説明文中にJANと含まれていますね。というわけで、JANコードからBOOKOFF価格を強引に取得する方法として、

  1. タイトルをキーワードにして検索し、商品リストを取得
  2. 商品リストを片っ端から調べ、itemCaption中にJANコードが含まれていたら該当商品とみなし価格を取得
を試したコードが下のもの。前回のコードに、
if caption.include? (jan_code)
の行が追加されています。


require 'rakuten_web_service'require 'uri' # 楽天のサンプルに追加
RakutenWebService.configuration do |c|
  c.application_id = 'YOUR_APPLICATION_ID' # 取得したアプリケーションIDで置き換える  
  c.affiliate_id = 'YOUR_AFFILIATE_ID' # この行はなくても大丈夫そう。
end
jan_code = '4988601006392'items = RakutenWebService::Ichiba::Item.search(:keyword => 'ドラゴンクエストIX', :shopCode => 'bookoffonline')
items.each do |item|
  if item['availability'] == 1 #在庫があるか    
    caption = item['itemCaption']
    if caption.include? (jan_code) # 説明文にjan_codeが含まれているか      
      p item.price.to_i
    end  
  end
end

おわりに

普通にJANコードをキーに検索できても良さそうですし、もしかしたら方法があるのかもしれません。見つかったらまた更新します。

2016年2月27日土曜日

Rubyで楽天APIを試す

はじめに

Ruby初心者ですが、個人的プロジェクトで勉強がてら使っています。そのプロジェクトで楽天のAPIを使ってBOOKOFFの価格を調べるという必要が出てきたので、ちょっとやってみました。

開発・実行環境

MacBook Pro
OSX El Capitan (10.11.3)

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

使用したAPI

キーワードと楽天ショップを指定して商品リストを取得するAPI。
楽天商品検索API (version:2014-02-22)

準備

  1. 楽天でアプリケーションIDを取得こちらから。
  2. Rubyのgemが用意されているので、gem install rakuten_web_service

サンプルコード

上記楽天のサイトにRubyのサンプルが載っています。下のコードはサンプルを少しだけいじったものです。楽天のサンプルそのままだと私の環境ではエラーが出たので、
require 'uri'
を追加したところ動作しました。
Item.searchで楽天ショップのshopCodeというのを与えるのですが、BOOK OFFの場合、urlが下記のようになっています。
http://www.rakuten.ne.jp/gold/bookoffonline/
最後の"bookoffonline"の部分がshopCodeのようです。
入れてみたらそれっぽく動きました。

require 'rakuten_web_service'
require 'uri' # 楽天のサンプルに追加

RakutenWebService.configuration do |c|
  c.application_id = 'YOUR_APPLICATION_ID' # 取得したアプリケーションIDで置き換える
  c.affiliate_id = 'YOUR_AFFILIATE_ID' # この行はなくても大丈夫そう。
end

items = RakutenWebService::Ichiba::Item.search(:keyword => 'ゼノブレイド', :shopCode => 'bookoffonline') 
items.each do |item|
  if item['availability'] == 1 #在庫があるか
    #取得したデータを適当に出力
    puts "#{item['itemName']}, #{item.price} yen, #{item['shopName']}, #{item['genreId']}, #{item['itemCode']}" 
    puts "#{item['itemCaption']}"
    puts "#{item['itemUrl']}"
  end
end

おわりに

できればJANコードから検索できるといいのですが、このAPIでは対応していないようです。keywordにJANコードを入れるとBOOKOFF指定では何も結果が得られませんでした。店舗指定なしだと、商品名にJANコードが入っていればヒットします。

2016年2月26日金曜日

ロジクール MMOゲーミングマウス G600をプログラミング用に使う(2)

はじめに

前回開封したロジクールG600を仕事用PCにつないで設定してみました。
左がG600、右が今まで使っていたAnkerのエルゴノミクスマウス。サイズはG600の方がやや小さく感じます。

Logicool ゲームソフトウェア 8.78

G600の設定用にWebからソフトウェアをダウンロードします。インストールは特に設定項目もなく、次々とクリックするだけです。終了後再起動を求められます。インストールされた設定用アプリの名前はゲームソフトウェア。仕事中に起動するのを一瞬躊躇してしまうネーミングですね。。以下、画面はバージョン8.78のものです。

起動後の画面はこんな感じ。さすがゲーム用(?)。シンプルで使いやすそう。


まず前回気になったボタンのライトの点滅を止められるのか。設定はすぐ見つかりました。
「ライトの効果」をOFFにすれば常時点灯になります。
色も変えられます。色を真っ黒にすればライトの点灯をOFFにするのと同じことかな?


親指で押す12個のボタンもやはりカスタマイズできます。デフォルトではテンキーに合わせてあるようです。MMOゲームはやったことないですが、テンキーを結構使うんでしょうね。3パターン登録できるようです。ゲームに合わせて切り替えられるんでしょうが、仕事用にもアプリに合わせて切り替えたら便利かもしれませんね。まだそこまでは試していません。


プログラミング用にカスタマイズ

メインで使用している開発環境Microsoft Visual Studioに合わせて少しカスタマイズしてみました。Visual Studio自体、既にキーボードに合わせてカスタマイズしてあるので、そのキーボードショートカットを登録しています。ビルド・コンパイル・デバッグ実行・ステップオーバー・ステップイン・ステップアウト・ブレークポイントを割り当ててみました。


デバッグ中はマウスオーバーで変数の中身を見たりするのでマウスとキーボードを行き来していましたが、このマウスなら右手だけで大抵のデバッグ中の操作ができそうです。

Visual Studioのショートカットには"Alt+K, C"のようにキーをシーケンシャルに押すものもあるので、マウスに登録できるか試してみましたが、無理そうでした。"Alt+K"までしか入りません。Visual Studio側でキー割り当てを変える必要がありますね。

まとめ

ロジクールG600のいいところ

  • カスタマイズ可能な多数のキー。
  • 設定ソフトも使いやすい。
  • 設定内容はマウス内メモリーにも保存できるらしい。別のPCに接続しても設定をやり直さなくてもいいらしい。
  • 個人的にはちょうどいいサイズ。どのボタンにも指が届く。

ロジクールG600のいまいちなところ

特徴的なマウスなので慣れが必要な部分はあります。
  • 右クリックボタンのさらに右側にもボタンがあるので間違えやすい
  • 親指ボタンを素早く押せるようになるのかちょっと不安

2016年2月25日木曜日

ロジクール MMOゲーミングマウス G600をプログラミング用に使う(1)

プログラミング用マウスの買い換え

仕事で使用していたマウスの調子が悪くなってきたためマウスを新しく買い換えたいと思っていました。今まで使用していたのはAnkerのエルゴノミクスマウス。ホイールボタンの接触が怪しくなりました。3年前くらいの購入時は確か2000円しなかったと思います。今見たら約5000円。。国内取り扱いがなくなり値段上がってしまったのでしょうか。3年近く使っているので十分元は取れたと思います。

エルゴノミクスマウスの効果

一般にエルゴノミクスマウスは手首に負担をかけないように出来ています。私の場合、もともと手首が痛くなったこともなく予防的に使っていたので結局効果はよくわかりません。そもそもプログラミング中はキーボード操作が主体になるのでマウスが原因で手首が痛くなることはあまりないのかもしれません。というわけで次は普通のマウスでもいい気がしていました。

Amazon Prime Now!でポチる

先日Amazon Primeに入ったばかりで、Prime Now!のクーポンがありました。そういえばマウスが不調だったなぁとPrime Nowアプリでマウスを眺めてみました。すると親指ボタンが多数並んでいるロジクールのG600に目が留まりました。MMOゲーミングマウスとありますが、MMOゲームはやったことないのでよくわかりません。ただ、プログラミング中は結構キーボードショートカットを使います。特にデバッグ中はマウス操作も多いためマウス側からショートカットを呼び出せたら便利になりそうな気がしました。きっとボタンにキーボードショットカットを割り当てられるだろうと見越してさっさとPrime Now!でポチりました。クーポン使用で約4000円でした。

ロジクールG600開封

注文した当日中に届きました。さすがAmazon Prime Now!。早速開封してみます。


箱。ロジクールのゲーミングラインのテーマカラー?黒ベースに青字。


表紙はぱかっと開くことができ、店頭に箱のまま置かれていてもマウスのサイズ感がわかるようになっています。この表紙はマグネットでピタッと閉まるので持ち運び中にプラプラすることがないです。意外と凝ってる。


パッケージ内容はこれだけ。最近はCD-ROMは付属しなくなったのですね。どうせ最新版ダウンロードするから不要ですしね。


このマウスの最大の特徴。親指ボタンが3×4=12個もあります。


上面にも右ボタンの右側にもう一つボタンがあります。ホイールの下にも二つボタンがあります。


とりあえずUSBで接続してみました。サイドのボタンが光ってオシャレです。ただ点滅するのが仕事用には目障りかも。。カスタマイズでオフにできるのかなぁ。