外部のWebサイトから必要なデータを取得する場合、指定のアドレスにアクセスする処理を用意しなければいけません。JavaScriptの場合、スクリプトがダウンロードされたサイトにしかアクセスすることができませんが、Google Apps Scriptにはそんな制約はありません。なにしろ、サーバーサイドで実行されるスクリプトですし、そのためのオブジェクトもちゃんとライブラリとして用意されているのです。
指定のアドレスにアクセスするための機能は、「
UrlFetchApp」というオブジェクトとして用意されています。このオブジェクトのもっともシンプルな使い方は、「
fetch」というメソッドを呼び出すだけです。
変数 = UrlFetchApp.fetch( アドレス );
引数に、アクセス先となるアドレスを指定するだけで、そこにアクセスしてサーバーからデータを取り出すことができます。もう少し細かなアクセス状況を設定したい場合には、第2引数に必要な情報を用意することができます。
変数 = UrlFetchApp.fetch( アドレス, オプション );
○オプションの項目contentType――コンテンツの種類
headers――ヘッダー情報(連想配列)
method――メソッドの種類
payload――合わせて送信する情報
useIntranet――イントラネット利用の場合
oAuthServiceName――OAuthサービス名
oAuthUseToken――OAuthトークン
HTTPアクセスする際には、さまざまな情報をヘッダー情報として送り、サーバーとやり取りをします。そのために必要な情報を連想配列としてまとめ、それを第2引数に渡すことで、より細かなアクセス設定を行えます。――といっても、用意されている項目の中にはよくわからないものもあるでしょう。とりあえず、
contentTypeと
methodだけ覚えておけば、普通にアクセスすることはできるでしょう。
下に簡単な利用例をあげておきました。このlibro.tuyano.comにGETアクセスし、そのHTMLソースを取得する例です。受け取ったデータは、とりあえずLogger.logでログ出力してあるので、それぞれで確認してみましょう。ちゃんとHTMLのソースが取り出せていることがわかるでしょう。
ここでは、
UrlFetchApp.fetchした結果の
responseから、
getContentTextというメソッドを使って取得したコンテンツをとり出しています。この
responseがどういうものか?については後ほど改めて説明しますので、「とりあえず
fetchしたら
response.getContentTextで結果を取り出せばいい」とだけ、ここでは頭に入れておきましょう。