SOAP/WSDLによるWebサービスを利用する (3/4)
作成:2012-07-17 08:47
更新:2012-07-17 08:55
更新:2012-07-17 08:55
■必要なパラメータの作成
では、実際にSOAPサービスにアクセスしながら、具体的な使い方を覚えていくことにしましょう。ここでは、先ほどのWebserviceX.NETで公開されている「CurrencyConvertor」というサービスを利用してみることにします。
このCurrencyConvertorは、貨幣単位の変換レートを調べるものです。例えばドル=円の換算レートなら、「78.15」というような値が返されます(つまり、1ドル=78.15円、という意味です)。
このCurrencyConvertorの説明を見ると、以下のような形で問い合わせを行うようになっています。
<ConversionRate>――オペレーション(操作)名です。今回はConversionRateという項目内に必要な情報がまとめられていることがわかります。
<FromCurrency>――元の単位を示す情報です。
<ToCurrency>――変換する単位を示す情報です。
このように、CurrencyConvertorというサービスを利用する際には、ConversionRateというオペレーションに、FromCurrencyとToCurrencyという2つの情報を用意しておく必要がある、ということがわかります。Google Apps ScriptでWsdlServiceを利用する場合、これらの情報をパラメータ用のオブジェクトとしてまとめておく必要があります。
このとき、上に説明したパラメータ情報のオブジェクトを用意し、引数として渡します。では、このオブジェクトはどのような形で作製すれば良いのでしょうか。以下に整理しておきましょう。
"ConversionRate"――オペレーション名です。ここではConversionRateでしたね。
{"xmlns":"http://www.webserviceX.NET/"}――ConversionRateに用意する属性を連想配列でまとめたものです。先のXMLドキュメントでは、<ConversionRate xmlns="http://www.webserviceX.NET/">というようにタグが書かれていました。xmlnsという属性が必要となることがわかります。
["FromCurrency", 元の単位 ]――これ以降は、ConversionRateに用意されるパラメータ情報です。これらは、それぞれの項目ごとに、「項目名,値」というように2つを一つにまとめた配列の形で値を用意してやります。
["ToCurrency", 変換する単位 ]――これもパラメータ情報ですね。ConversionRateでは、この2つのパラメータが必要でした。
こうして用意したパラメータを引数に指定してConversionRateメソッドを呼び出せばよいわけです。
このCurrencyConvertorは、貨幣単位の変換レートを調べるものです。例えばドル=円の換算レートなら、「78.15」というような値が返されます(つまり、1ドル=78.15円、という意味です)。
このCurrencyConvertorの説明を見ると、以下のような形で問い合わせを行うようになっています。
<?xml version="1.0" encoding="utf-8"?>これが、SOAPの利用するための問い合わせの仕様なのです。<soap:Body>というタグの中に、問い合わせに必要なものがまとめられています。以下に整理しましょう。
<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>
<ConversionRate>――オペレーション(操作)名です。今回はConversionRateという項目内に必要な情報がまとめられていることがわかります。
<FromCurrency>――元の単位を示す情報です。
<ToCurrency>――変換する単位を示す情報です。
このように、CurrencyConvertorというサービスを利用する際には、ConversionRateというオペレーションに、FromCurrencyとToCurrencyという2つの情報を用意しておく必要がある、ということがわかります。Google Apps ScriptでWsdlServiceを利用する場合、これらの情報をパラメータ用のオブジェクトとしてまとめておく必要があります。
●パラメータの用意
WsdlServiceオブジェクトには、アクセスするサービス名のメソッドが用意されます。ここではCurrencyConvertorというサービスを利用しますから、取得したオブジェクトのCurrencyConvertorメソッドを呼び出し、結果を受け取ります。このとき、上に説明したパラメータ情報のオブジェクトを用意し、引数として渡します。では、このオブジェクトはどのような形で作製すれば良いのでしょうか。以下に整理しておきましょう。
変数 = ["ConversionRate",パラメータ用オブジェクトは、このような形になります。見ればわかるように、配列の形で必要な値をまとめていますね。ここでは以下の4つの項目が保管されています。
{"xmlns":"http://www.webserviceX.NET/"},
["FromCurrency", 元の単位 ],
["ToCurrency", 変換する単位 ]
];
"ConversionRate"――オペレーション名です。ここではConversionRateでしたね。
{"xmlns":"http://www.webserviceX.NET/"}――ConversionRateに用意する属性を連想配列でまとめたものです。先のXMLドキュメントでは、<ConversionRate xmlns="http://www.webserviceX.NET/">というようにタグが書かれていました。xmlnsという属性が必要となることがわかります。
["FromCurrency", 元の単位 ]――これ以降は、ConversionRateに用意されるパラメータ情報です。これらは、それぞれの項目ごとに、「項目名,値」というように2つを一つにまとめた配列の形で値を用意してやります。
["ToCurrency", 変換する単位 ]――これもパラメータ情報ですね。ConversionRateでは、この2つのパラメータが必要でした。
こうして用意したパラメータを引数に指定してConversionRateメソッドを呼び出せばよいわけです。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※下図は、CurrencyConvertorの説明ページ。
※関連コンテンツ
「Google Apps Scriptプログラミング [中級編]」に戻る