libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

SOAP/WSDLによるWebサービスを利用する (3/4)

作成:2012-07-17 08:47
更新:2012-07-17 08:55

■必要なパラメータの作成

では、実際に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というオペレーションに、FromCurrencyToCurrencyという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メソッドを呼び出せばよいわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※下図は、CurrencyConvertorの説明ページ。


※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る