IIJmioクーポンスイッチAPIのNode.jsラッパーです。 oAuthとAPIへのアクセスをラップしています。
実行にはデベロッパーIDとリダイレクトURIの指定が必要です。これらは公式サイトに従って登録してください。 IIJmioクーポンスイッチAPIのご利用に当たって(IIJmioのサイト)
npm install node-miopon
node-mioponモジュールは、oAuthメソッド、コンストラクタ関数Coupon、コンテナオブジェクトutilityをメンバに持ちます。
phantomjsでoAuthのやり取りを自動化します。
oAuth
takes{ mioID, mioPass, client_id, redirect_uri, success, failure }
.- callback
success
will be called with{client_id, access_token, expires_in}
. - callback
failure
will be called with aerror object
.
回線の情報(ID、電話番号、クーポンを使用中か、etc.)を取得します。
coupon.inform
takes{client_id, access_token, success, failure}
.- callback
success
will be called with{information}
. - callback
failure
will be called with aerror object
.
クーポンの切り替えをします。
coupon.turn
takes{client_id, access_token, query, success, failure}
.- callback
success
will be called with no argument. - callback
failure
will be called with aerror object
.
informメソッドで得られたinformationオブジェクトを、turnメソッドで用いるqueryオブジェクトに整形します。
utility.querify
takes{information, couponUse, filter}
and returnsquery
synchronously.- optional
couponUse
accepts..'on'
or something to be evaluated astrue
'off'
or something to be evaluated asfalse
- optional
filter
accepts array or string of phone number(s) and filter query if provided. If not, all of the information will be querified.
hdoServiceCodeを指定して、turnメソッドで用いるqueryオブジェクトを生成します。
utility.generateQuery
takes{turnStates}
and returnsquery
synchronously.turnStates
should be a array of{hdoServiceCode: couponUse}
CoffeeScriptでの例
oAuth = require('node-miopon').oAuth
oAuth {
mioID: 'aaaaaaaa'
mioPass: 'bbbbbbbb'
client_id: 'cccccccc' # デベロッパーID
redirect_uri: 'ddddd'
success: ({access_token})->
console.log 'authorized!'
failure: (err) ->
console.log 'not authorized..'
console.log err
}
miopon = require 'node-miopon'
coupon = new miopon.Coupon
utility = miopon.utility
client_id = 'xxxxxxxxxxxxxxxxxxx'
access_token = 'yyyyyyyyyyyyyyyyyyy'
# この例では、最初に全ての回線情報を取得しています
coupon.inform {
client_id
access_token
success: ({information}) ->
# informationオブジェクトを整形
query = utility.querify {
information
couponUse: 'on'
filter: '0123'
}
# このクエリでturnメソッドを実行
coupon.turn {
client_id
access_token
query
success: ->
console.log 'turn success!'
failure: (err) ->
console.log err
}
}
miopon = require 'node-miopon'
coupon = new miopon.Coupon
utility = miopon.utility
client_id = 'xxxxxxxxxxxxxxxxxxx'
access_token = 'yyyyyyyyyyyyyyyyyyy'
# hdoServiceCodeはinformメソッドなどで取得しておきます
# この例では、3つのクーポンを扱っています
# XとYはクーポンを共有しています
# Zは、XYとはクーポンを共有していません
# XZをonにし、Yをoffにします
query = utility.generateQuery [
{
'hdoXXXXXXXX': 'on'
'hdoYYYYYYYY': 'off'
},{
'hdoZZZZZZZZ': 'on'
}
]
coupon.turn {
client_id
access_token
query
success: ->
console.log 'turn success!'
}