iOSショートカットとGoogleスプレッドシートを使った体重記録アプリの作成
またChatGPT先輩にアプリ作ってもらったので公開します。
記事もほぼ書いてもらいました。
概要
今回は、iPhoneのショートカット機能を使って、日時と体重を入力すると自動的にGoogleスプレッドシートに記録されるアプリを作成する方法をご紹介します。このアプリを使えば、手軽に体重管理ができるようになります。
必要なもの
iPhone
Googleアカウント
Googleスプレッドシート
Google Apps Script
ショートカットアプリ(iOS)
手順
以下の手順に従ってアプリを作成します。
1. Googleスプレッドシートの準備
Googleスプレッドシートを作成し、適当な名前を付けます(例:「体重管理」)。
シート名は「シート1」とします(デフォルトのままでOKですし、変えてもOKです)。
シートのA列には「日付」、B列には「体重」を記録します。
2. Google Apps Script(GAS)の設定
スプレッドシートの「拡張機能」から「Apps Script」を選択します。
以下のコードを貼り付けます
function doPost(e) {
var scriptProperties = PropertiesService.getScriptProperties();
var spreadsheetId = scriptProperties.getProperty("SPREADSHEET_ID");
var sheetName = scriptProperties.getProperty("SHEET_NAME");
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
try {
var data = JSON.parse(e.postData.contents);
var datetime = new Date(data.datetime); // 送信された日時をDateオブジェクトに変換
var weight = data.weight;
// mm/dd形式に変換
var month = ("0" + (datetime.getMonth() + 1)).slice(-2); // 月は0-11の範囲なので+1
var day = ("0" + datetime.getDate()).slice(-2);
var formattedDate = month + "/" + day;
// 日付のフォーマットを確認し、無効な場合は「不明」を設定
if (isNaN(datetime.getTime())) {
formattedDate = "不明";
}
// A列とB列の最終行を特定し、その次の行を計算
var lastRowA = sheet.getRange("A:A").getValues().filter(String).length;
var lastRowB = sheet.getRange("B:B").getValues().filter(String).length;
var lastRow = Math.max(lastRowA, lastRowB);
// 次の空行を特定
while(sheet.getRange(lastRow + 1, 1).getValue() || sheet.getRange(lastRow + 1, 2).getValue()) {
lastRow++;
}
lastRow++;
sheet.getRange(lastRow, 1).setValue(formattedDate);
sheet.getRange(lastRow, 2).setValue(weight);
return ContentService.createTextOutput(JSON.stringify({"result": "success"})).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
// エラー処理
return ContentService.createTextOutput(JSON.stringify({"result": "error", "message": error.message})).setMimeType(ContentService.MimeType.JSON);
}
}
コードを保存し、「デプロイ」→「新しいデプロイ」を選択します。
「ウェブアプリ」としてデプロイし、誰でもアクセスできるように設定します。
デプロイ後に表示される「ウェブアプリのURL」をメモしておきます。
スクリプトプロパティにスプレッドシートIDとシート名を設定します:
スクリプトエディタで「ファイル」→「プロジェクトのプロパティ」→「スクリプトのプロパティ」を選択します。
「スクリプトプロパティ」に以下のキーと値を追加します:
SPREADSHEET_ID: {スプレッドシートのURLに記載されているID}
SHEET_NAME: {シート名(デフォルトは「シート1」)}
3. iPhoneのショートカットアプリの設定
ショートカットアプリを開き、右上の「+」アイコンをタップして新しいショートカットを作成します。
「アクションを追加」ボタンをタップし、「入力を要求」を追加します。
「プロンプト」に「体重」と入力、「テキスト」をタップし、メニューから「数字」を選択、右矢印をタップして詳細設定を開き、「小数点以下の数字を許可」をオンに、「負の数字の許可」をオフにします。
「プロンプト」に「日付」と入力、「テキスト」をタップし、メニューから「日付」を選択します。
「URLの内容を取得」アクションを追加し、以下の設定をします。
「URL」フィールドにGASウェブアプリのURLを入力します。
「方法」を「POST」に設定します。
「本文を要求」を有効にし、JSONを選択して、新規フィールドを以下のように追加します。
型:数字、キー:weight、値:タップして「変数を選択」より、「体重」項目の下の「指定入力」をタップ。
型:テキスト、キー:datetime、値:タップして「変数を選択」より、「日時」項目の下の「指定入力」をタップ。
ショートカットに名前を付けて保存します。
実行
作成したショートカットを実行すると、日付と体重を入力するプロンプトが表示され、それを入力すると指定のGoogleスプレッドシートにデータが追加されます。
終わりに
この方法を使えば、簡単に体重を記録することができます。さらに、自動化を進めることで、他の健康管理やデータ収集も手軽に行えるようになるでしょう。ぜひ試してみてください。
ここから先は
¥ 100
この記事が気に入ったらサポートをしてみませんか?