はじめに
お久しぶりです、Tomita Kentaroです。今回は仕事で、Google App Scriptを使う機会がありましたので、使い方を忘れないように備忘録としてまとめます。仕事では、別の言語を使いましたが、今回は、Pythonから簡単にGoogle App Scriptを実行してみます。
Google App Scriptとは?
Apps Script は、Google Workspace の統合、自動化、拡張のためのビジネス ソリューションをすばやく簡単に構築するための唯一のローコード プラットフォームです。Apps Script を使えば、ビジネス ユーザーは本格的なソフトウェア開発の経験がなくても、Google Workspace 上にカスタム ソリューションを構築できます。Apps Script は、Gmail アカウントをお持ちであればどなたでもご利用いただけます。
私が使った感覚では、簡単にスプレッドシートなどをプログラムから操作できる、というものでした。
Google Apps Script: Google Workspace を自動化、統合、拡張。
スプレッドシートに書いた内容
今回、スプレッドシートに書いた表は以下の様になります。
ID | Name | Age | |
---|---|---|---|
1 | Alice | 25 | alice@example.com |
2 | Bob | 30 | bob@example.com |
3 | Charlie | 22 | charlie@example.com |
Google App Scriptに書いたコード
今回、Google App Scriptに書いたコードは以下の様になります。
function getSpreadsheetData() {
// スプレッドシートのIDを取得
var spreadsheet = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID');
var sheet = spreadsheet.getActiveSheet();
var data = sheet.getDataRange().getValues();
return JSON.stringify(data);
}
作成したPythonのコード
今回、作成したPythonコードは以下の様になります。
import requests
# Google Apps Script のデプロイ URL
url = "YOUR_DEPLOYED_URL"
def fetch_spreadsheet_data():
try:
response = requests.get(url)
response.raise_for_status()
# ステータスコードが200以外の場合に例外を発生させる
# レスポンスをチェック
print("Response Content:", response.text)
# ここでレスポンスの内容を表示
data = response.json()
return data
except requests.exceptions.RequestException as e:
print(f"Error fetching data: {e}")
except ValueError as e:
print(f"JSON decode error: {e}")
# JSON パースのエラーをキャッチ
return None
data = fetch_spreadsheet_data()
if data:
for row in data:
print(row)
実行方法と実行結果
今回は、requests ライブラリを使っているので、事前にインストールします。
$ pip install requests
まず、スプレッドシートのIDを取得し、Google App ScriptのYOUR_SPREADSHEET_ID
に貼り付けます。
続いて、Google App Scriptから「新しいデプロイ」を選択し、デプロイタイプを選択するところで「ウェブアプリ」を選択します。そして、アクセスできるユーザーで「全員」を選択し、デプロイします。その際にウェブアプリのURLをPythonのコードのYOUR_DEPLOYED_URL
の部分に貼り付けます。
最後に、Pythonのプログラムを実行します。
$ python3 gas.py
Response Content: [[" ID","Name","Age","Email"],[1,"Alice",25,"alice@example.com"],[2,"Bob",30,"bob@example.com"],[3,"Charlie",22,"charlie@example.com"]]
[' ID', 'Name', 'Age', 'Email']
[1, 'Alice', 25, 'alice@example.com']
[2, 'Bob', 30, 'bob@example.com']
[3, 'Charlie', 22, 'charlie@example.com']
最後に
今回は、久しぶりに備忘録として記事を書いてみました。また、来週は勉強会もあるため、この記事が何かの役に立てれば嬉しいです。また、何かアドバイスなどがありましたら、ぜひコメントに書いていただけると嬉しいです。本日は以上です。最後まで、読んでいただき、ありがとうございました。