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

UrlFetchとXmlデータの利用 (1/6)

作成:2011-07-11 07:56
更新:2011-11-04 16:28

■UrlFetchで指定URLのデータを取得する

外部のWebサイトから必要なデータを取得する場合、指定のアドレスにアクセスする処理を用意しなければいけません。JavaScriptの場合、スクリプトがダウンロードされたサイトにしかアクセスすることができませんが、Google Apps Scriptにはそんな制約はありません。なにしろ、サーバーサイドで実行されるスクリプトですし、そのためのオブジェクトもちゃんとライブラリとして用意されているのです。

指定のアドレスにアクセスするための機能は、「UrlFetchApp」というオブジェクトとして用意されています。このオブジェクトのもっともシンプルな使い方は、「fetch」というメソッドを呼び出すだけです。
変数 = UrlFetchApp.fetch( アドレス );
引数に、アクセス先となるアドレスを指定するだけで、そこにアクセスしてサーバーからデータを取り出すことができます。もう少し細かなアクセス状況を設定したい場合には、第2引数に必要な情報を用意することができます。
変数 = UrlFetchApp.fetch( アドレス, オプション );

○オプションの項目
contentType――コンテンツの種類
headers――ヘッダー情報(連想配列)
method――メソッドの種類
payload――合わせて送信する情報
useIntranet――イントラネット利用の場合
oAuthServiceName――OAuthサービス名
oAuthUseToken――OAuthトークン

HTTPアクセスする際には、さまざまな情報をヘッダー情報として送り、サーバーとやり取りをします。そのために必要な情報を連想配列としてまとめ、それを第2引数に渡すことで、より細かなアクセス設定を行えます。――といっても、用意されている項目の中にはよくわからないものもあるでしょう。とりあえず、contentTypemethodだけ覚えておけば、普通にアクセスすることはできるでしょう。

下に簡単な利用例をあげておきました。このlibro.tuyano.comにGETアクセスし、そのHTMLソースを取得する例です。受け取ったデータは、とりあえずLogger.logでログ出力してあるので、それぞれで確認してみましょう。ちゃんとHTMLのソースが取り出せていることがわかるでしょう。

ここでは、UrlFetchApp.fetchした結果のresponseから、getContentTextというメソッドを使って取得したコンテンツをとり出しています。このresponseがどういうものか?については後ほど改めて説明しますので、「とりあえずfetchしたらresponse.getContentTextで結果を取り出せばいい」とだけ、ここでは頭に入れておきましょう。

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

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

●プログラム・リスト●

function fetchData(){
	var opt = {"contentType":"text/html","method":"get"};
	var response = UrlFetchApp.fetch("http://libro.tuyano.com/",opt);
	Logger.log(response.getContentText());
}

※関連コンテンツ

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