カラーミーショップのAPIを.NETから使ってみた
カラーミーショップのAPIが全てのプランに無料公開というニュースを見たらちょっと作ってみたいものが出てきたので.NETから操作できないか試してみた。
開発環境はVisualStudio Professional 2012
言語はVisualBasic
まずはカラーミーのデベロッパー登録
http://api.shop-pro.jp/developers
仮登録されメールが送られてくるのでそこから本登録
ログインした後でアプリケーションの登録
アプリケーション名は適当に入力
「Webアプリケーション以外を作成する場合は、
リダイレクトURLに urn:ietf:wg:oauth:2.0:oob を登録してください。」
とあるのでリダイレクトURLにはそのまま「urn:ietf:wg:oauth:2.0:oob」を入力
認証方式はOAuthを使っているというのでまずはそこから調査
そういえばTwitterクライアントのTweenがOAuth対応になっているし
オープンソースだったようなと思い探してみるとTweenの作者きりさんのブログにこんな記事が
すばらしいです。
このライブラリをそのまま使わせてもらいました。
まずはWindowsのFormにWebBrowserのオブジェクトを貼り付け認証ページを表示させます。
必要なパラメータはこのページの「2. 認証ページを利用者に表示します」を参考にします。
ここでカラーミーショップの管理者IDとパスワードを入力してログインします。
すると認可コードを取得する事ができます。
このページの「3. 認可コードを取得」にあるWebViewを用いる場合を参考に認可コードを取得。
次にこの取得した認可コードをアクセストークンに交換します。
「4. 認可コードとアクセストークンを交換」の部分。
結果はJSON形式で返ってくるのですが
.NETでJSONを扱うにの何が良いか調べたら出てきたのが「Json.net」
これはNUGETでプロジェクトに取り込めます。
これでやっとアクセストークンを取得する事ができました。
今後はこのアクセストークンを使ってカラーミーショップのデータにアクセスしていきます。
APIの操作方法はこちらのページを参考にします
カラーミーAPIインターフェイス v1
例えば店舗情報から店IDと店名を取得する場合は
WebRequestを使って以下のURLを呼び出します
Dim webreq As System.Net.WebRequest = System.Net.WebRequest.Create("https://api.shop-pro.jp/v1/shop.josn?fields=id,title")
webreq.Headers("Authorization") = "Bearer " & m_strAccessToken
Headers("Authorization")の部分は取得したアクセストークンをここで設定しています。
これを指定しないと権限が無いとエラーになってしまいます。
結果はJSONで返ってくるのでここからidとtitleの値を取得します。
16日にAPIが公開されてからここまで2日かかりました。
ふだんWebの仕事をしている訳ではないのでOAuthとかも初めてでしたのでなかなか大変でしたが
これでやっと思いついたアイデアを形にできる入口に立てました。
========= 2014/11/10 追記 =========
コメント欄で質問があったので簡単ですが説明を
kiriさんのサイト(OAuth(xAuth)のVB.net実装サンプル - きりの日記)
に「オリジナルなこちら」というリンクがあると思いますが
その先のsourceforgeのサイトから以下の3つのファイルを取得します。
・HttpConnection.vb
・HttpConnectionOAuth.vb
・IHttpConnection.vb
それをプロジェクトに追加してください
そしたらFormでも何でも良いので
kiriさんのサイトの
使い方サンプル(xAuth)
初期化~認証まで
を参考にとりあえずはカラーミーのAPIの認証を通るところまで試してみて下さい。
それができたら次のステップで店舗情報や商品情報、受注情報の取得に進みます。