【GAS】スプレッドシートをデータベースにしてAPIでデータを取得する

2021年6月26日

スプレッドシートのデータを取得する方法です。過去にPHPでスプレッドシートのデータを操作する方法を投稿しましたが、今回はGoogle Apps Script と JavaScript を使います。

PHPでの取得方法はこちらから

GASの設定

function doGet(e) {

    const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1")
    const value = sh.getRange(1,1).getValue()

    let result = {
        data: value
    }

    let responseText;

    let out = ContentService.createTextOutput();

    let callback = e.parameter.callback;

    if (callback) {
        console.log(callback)
        responseText = callback + "(" + JSON.stringify(result) + ")";
        //Mime Typeをapplication/javascriptに設定
        out.setMimeType(ContentService.MimeType.JAVASCRIPT);

    } else {
        responseText = JSON.stringify(result);
        //Mime Typeをapplication/jsonに設定
        out.setMimeType(ContentService.MimeType.JSON);
    }


    //JSONPテキストをセットする
    out.setContent(responseText);

    return out;
}

デプロイする

デプロイ → 新しいデプロイ を選択

ウェブアプリを選択肢、アクセスできるユーザーを制限します。

これを制限しないと、誰でもAPIを使えるようになってしまいます。

Java Script

JavaScriptでAPIを叩きます、jQueryを使用しています。


//ウェブアプリのURL
const endpoint = "https://script.google.com/a/macros/*********/exec";
$.ajax({
    type: 'GET',
    url: endpoint,
    dataType: 'jsonp',
    success: out => {
        //ここにデータ取得後の処理を書く
        alert(out.data);
    },
    error: out =>{
        alert('error');
        
    }
});

上記で完成です。意外と簡単に作成できますのでお試しください。



GAS,Javascript

Posted by Next-k