0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】簡単にPythonでGoogle App Script(GAS)を使ってみた!

Posted at

はじめに

 お久しぶりです、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 Email
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コードは以下の様になります。

gas.py
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']

最後に

 今回は、久しぶりに備忘録として記事を書いてみました。また、来週は勉強会もあるため、この記事が何かの役に立てれば嬉しいです。また、何かアドバイスなどがありましたら、ぜひコメントに書いていただけると嬉しいです。本日は以上です。最後まで、読んでいただき、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?