では、実際に
SOAPサービスにアクセスしながら、具体的な使い方を覚えていくことにしましょう。ここでは、先ほどの
WebserviceX.NETで公開されている「
CurrencyConvertor」というサービスを利用してみることにします。
この
CurrencyConvertorは、貨幣単位の変換レートを調べるものです。例えばドル=円の換算レートなら、「78.15」というような値が返されます(つまり、1ドル=78.15円、という意味です)。
この
CurrencyConvertorの説明を見ると、以下のような形で問い合わせを行うようになっています。
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ConversionRate xmlns="http://www.webserviceX.NET/">
<FromCurrency>元の単位</FromCurrency>
<ToCurrency>変換する単位</ToCurrency>
</ConversionRate>
</soap:Body>
</soap:Envelope>
これが、SOAPの利用するための問い合わせの仕様なのです。
<soap:Body>というタグの中に、問い合わせに必要なものがまとめられています。以下に整理しましょう。
<ConversionRate>――オペレーション(操作)名です。今回は
ConversionRateという項目内に必要な情報がまとめられていることがわかります。
<FromCurrency>――元の単位を示す情報です。
<ToCurrency>――変換する単位を示す情報です。
このように、
CurrencyConvertorというサービスを利用する際には、
ConversionRateというオペレーションに、
FromCurrencyと
ToCurrencyという2つの情報を用意しておく必要がある、ということがわかります。Google Apps Scriptで
WsdlServiceを利用する場合、これらの情報をパラメータ用のオブジェクトとしてまとめておく必要があります。
●パラメータの用意
WsdlServiceオブジェクトには、アクセスするサービス名のメソッドが用意されます。ここでは
CurrencyConvertorというサービスを利用しますから、取得したオブジェクトの
CurrencyConvertorメソッドを呼び出し、結果を受け取ります。
このとき、上に説明したパラメータ情報のオブジェクトを用意し、引数として渡します。では、このオブジェクトはどのような形で作製すれば良いのでしょうか。以下に整理しておきましょう。
変数 = ["ConversionRate",
{"xmlns":"http://www.webserviceX.NET/"},
["FromCurrency", 元の単位 ],
["ToCurrency", 変換する単位 ]
];
パラメータ用オブジェクトは、このような形になります。見ればわかるように、配列の形で必要な値をまとめていますね。ここでは以下の4つの項目が保管されています。
"ConversionRate"――オペレーション名です。ここでは
ConversionRateでしたね。
{"xmlns":"http://www.webserviceX.NET/"}――
ConversionRateに用意する属性を連想配列でまとめたものです。先のXMLドキュメントでは、
<ConversionRate xmlns="http://www.webserviceX.NET/">というようにタグが書かれていました。
xmlnsという属性が必要となることがわかります。
["FromCurrency", 元の単位 ]――これ以降は、
ConversionRateに用意されるパラメータ情報です。これらは、それぞれの項目ごとに、
「項目名,値」というように2つを一つにまとめた配列の形で値を用意してやります。
["ToCurrency", 変換する単位 ]――これもパラメータ情報ですね。
ConversionRateでは、この2つのパラメータが必要でした。
こうして用意したパラメータを引数に指定して
ConversionRateメソッドを呼び出せばよいわけです。