いてづきブログ

情シスでやってみたことの備忘録

GoogleAppsScriptでRest

隙間時間に書いた雑な文書なのでそのうちきれいに書く。

 

参考

http://qiita.com/items/d940ef8db0bd23c0f236

 

function doGet(e) {

  var jsonObject = new Array(5);
  for(var i = 0; i < 5; i++){
    jsonObject[i] = {hoge: "fuga" + i};
  }  
  if(e.parameter.callback) {
    return ContentService.createTextOutput(e.parameter.callback + '(' + JSON.stringify(e.parameter) + ')').setMimeType(ContentService.MimeType.JSON);
  } else {

    return ContentService.createTextOutput(JSON.stringify(jsonObject)).setMimeType(ContentService.MimeType.JSON);

  }

}

 

これでJSONが返される。

パラメータは、e.parameterに格納される。引数を渡したいときはこれを使う。

下の例で呼び出すと、GoogleAppsScript側はe.parameter.pageに1が格納されている。 

 

呼び出し側(jqueryを使用)

 

$(document).ready(function(){

        $.ajax({
            url : "http://json",
            dataType : "jsonp",
            data : {
                page : 1
            },
            success : function(json){

                // ロード完了時にここが呼ばれる               
                try{
                    for(var i = 0; i < json.length; i++){
                        var item = json[i];
                        $('<li><a href="http://www.yahoo.co.jp/">'+json[i].hoge+'</a></li>').appendTo($('#list'));
                    }

                    $('#list').listview('refresh');
                }catch(e){
                    alert(e);
                }
            },

            error : function(){
                alert('error');
            }
        });
    });

 

HTMLの一部(リストの部分)

    <div data-role="content">
        <ul data-role="listview" id="list">
        </ul>
    </div>