今回実行できたこと
Googleスプレッドシートに記入してあるセルのデータをjson形式で返す。
やりかったこと
Googleスプレッドシートで食べ物ごとの成分表を更新して、
iPhoneアプリ側で通信して取得してテーブルに表示したかった。
今回はURLを叩けばJSON形式でGoogleスプレッドシートの内容が返ってくる所まで
ご紹介しようと思います。
当投稿をコピー&ペーストすれば同じようなことが出来るようになると思います。
Googleスプレッドシートを使ってデータベースを使うメリット
- 非エンジニアでもデータの更新が可能。
- 誰でも簡単にExcelを操作するようにデータ更新する事が出来ます。
- 自作のサーバーやレンタルをせずにAPIを用意できる。
- 導入が簡単。
用語説明
- Googleスプレッドシート
- Googleが提供する無料のクラウド版Excel。
- 同期や同時編集、履歴やオンラインバックアップなど便利な機能が豊富。
- 非エンジニアでもデータの編集が可能。
- JSON形式
- 詳しくは調べてみてください。データ通信の便利な型という認識でOKです。
- 一般的な型です。
必要なもの
- Googleアカウント(無料)
- GoogleスプレッドシートをはじめとするGoogleAppは、アカウントが必要となります。
- 今お使いのG-mailなどで使っているアカウントで問題ございません。
手順1:Googleドライブ内にGoogleスプレッドシートを作成する。
上記URLにアクセスして
「マイドライブ」内に「Googleスプレッドシート」を新規作成してください。
こんな感じに作成してみてください、多分難しくはないと思います。
上記画像の緑色のアイコンがGoogleスプレッドシートファイルになります。
名前などは好きに決めてしまってください。
手順2:Googleスプレッドシートのスクリプトエディタを編集する。
上記画像を参考に、
スクリプトエディタを開いてみてください。
手順3:コーディングする
function getData(id, sheetName) {
var sheet = SpreadsheetApp.openById(id).getSheetByName(sheetName);
var rows = sheet.getDataRange().getValues();
var keys = rows.splice(0, 1)[0];
return rows.map(function(row) {
var obj = {}
row.map(function(item, index) {
obj[keys[index]] = item;
});
return obj;
});
}
function doGet() {
var data = getData('1c9qR44ui65K1fp-fQOjAB37s3vCV0K3vw1VNayqvNXc', 'Sheet1');
return ContentService.createTextOutput(JSON.stringify(data, null, 2))
.setMimeType(ContentService.MimeType.JSON);
}
上記コードをコピペしてみてください。
恐らく問題ないはず。
上記コードをペースト後、
上記画像のオレンジ色で囲った保存ボタンを押してください。
データの保存には1分程度時間がかかります。
確実に保存しましょう、反映されていないでハマるはよくあります。
手順4:ウェブアプリケーションとして導入
上記設定通りで問題ございません。
スクリーンショットの通り、設定してみましょう。
上記画像の「最新のコード」をクリックすると、
URLが取得できます(勝手にジャンプします)
注意:許可について(必須)
初回に「最新のコード」をクリックしてページ遷移すると、
下記画像のような警告が出ると思います。
ここハマりやすいので注意。
左下の「詳細」から「無題のプロジェクト(安全ではないページ)に移動」
これは、「許可」でOKです。
手順5:おしまい
「最新コード」のURLを検索すると、下記のようにJSON形式で返ってきます。
説明は以上となります。
追記
当記事を読みながら、
念の為もう1度Googleスプレッドシートを作ってみましたが、
問題なく実行できました。
なにかご質問があればコメントまでお寄せください。
0 件のコメント:
コメントを投稿