試してみました。
やってみると、LINEでメッセージを送るとデータ使用量の照会や、クーポンスイッチのON/OFFができたりしてなかなか面白いです。
今回はGoogle Apps Scriptを使ってLINE messaging APIを叩く方式で作成しました。
LINE messaging APIを叩く部分は分かりやすい解説がたくさんあると思いますので省略します。
IIJmioクーポンスイッチAPIを叩くところはググればすぐ見つかる・・という状況ではないように思いました。今後記事にしたいと思います。
今回は、1点はまったところがありましたのでその点についてポストします。
クーポンスイッチのON/OFFは coupon API (URL末尾/coupon/なので勝手にこう呼びます)ですが、eSIMだけを操作しようとしてもうまくいきませんでした。
(Your data structure or data type is invalid エラーになる)
試行錯誤のあげく、物理SIMのスイッチもあわせて操作することで通るようになりました。
うまくいったときのリクエストヘッダ設定を記載します。
前提となる変数は下記のとおりです。事前に、coupon APIの照会リクエストで値を取得しておく必要があります。
hdx_service_code(変更したいeSIMのhdxServiceCode)
coupon_switch(変更したいeSIMのスイッチ設定、ON:1 OFF:0)
hdo_service_code(ダミーで設定する物理SIMのhdoServiceCode)
coupon_switch0(ダミーで設定するスイッチ設定、ON:1 OFF:0)
コード:
let iijurl = "https://api.iijmio.jp/mobile/d/v2/coupon/";
var data = {
'url': iijurl
};
var headers = {
"X-IIJmio-Developer" : "...",
"X-IIJmio-Authorization" : "...",
"Content-Type" : "application/json"
};
var body = {
"couponInfo" : [
{
"hdoInfo" : [
{ "hdoServiceCode" : hdo_service_code, "couponUse" : Boolean(coupon_switch0) } // ダミーで入れるデータ(これを入れないとエラーになる)
],
"hdxInfo" : [
{ "hdxServiceCode" : hdx_service_code, "couponUse" : Boolean(coupon_switch) } // こちらが変更したいeSIMのデータ
]
}
]
};
var options = {
"method" : 'PUT',
"headers" : headers,
"payload" : JSON.stringify(body),
"muteHttpExceptions": true
};
let response = UrlFetchApp.fetch(iijurl, options);
「物理SIMとeSIMが混在して複数契約がある場合、eSIM単独では操作することができない」という制約なのかもしれません。eSIM単独契約の場合はどうなるんだろうか、など疑問は残ります。
やってみると、LINEでメッセージを送るとデータ使用量の照会や、クーポンスイッチのON/OFFができたりしてなかなか面白いです。
今回はGoogle Apps Scriptを使ってLINE messaging APIを叩く方式で作成しました。
LINE messaging APIを叩く部分は分かりやすい解説がたくさんあると思いますので省略します。
IIJmioクーポンスイッチAPIを叩くところはググればすぐ見つかる・・という状況ではないように思いました。今後記事にしたいと思います。
今回は、1点はまったところがありましたのでその点についてポストします。
クーポンスイッチのON/OFFは coupon API (URL末尾/coupon/なので勝手にこう呼びます)ですが、eSIMだけを操作しようとしてもうまくいきませんでした。
(Your data structure or data type is invalid エラーになる)
試行錯誤のあげく、物理SIMのスイッチもあわせて操作することで通るようになりました。
うまくいったときのリクエストヘッダ設定を記載します。
前提となる変数は下記のとおりです。事前に、coupon APIの照会リクエストで値を取得しておく必要があります。
hdx_service_code(変更したいeSIMのhdxServiceCode)
coupon_switch(変更したいeSIMのスイッチ設定、ON:1 OFF:0)
hdo_service_code(ダミーで設定する物理SIMのhdoServiceCode)
coupon_switch0(ダミーで設定するスイッチ設定、ON:1 OFF:0)
コード:
let iijurl = "https://api.iijmio.jp/mobile/d/v2/coupon/";
var data = {
'url': iijurl
};
var headers = {
"X-IIJmio-Developer" : "...",
"X-IIJmio-Authorization" : "...",
"Content-Type" : "application/json"
};
var body = {
"couponInfo" : [
{
"hdoInfo" : [
{ "hdoServiceCode" : hdo_service_code, "couponUse" : Boolean(coupon_switch0) } // ダミーで入れるデータ(これを入れないとエラーになる)
],
"hdxInfo" : [
{ "hdxServiceCode" : hdx_service_code, "couponUse" : Boolean(coupon_switch) } // こちらが変更したいeSIMのデータ
]
}
]
};
var options = {
"method" : 'PUT',
"headers" : headers,
"payload" : JSON.stringify(body),
"muteHttpExceptions": true
};
let response = UrlFetchApp.fetch(iijurl, options);
「物理SIMとeSIMが混在して複数契約がある場合、eSIM単独では操作することができない」という制約なのかもしれません。eSIM単独契約の場合はどうなるんだろうか、など疑問は残ります。