GAS ( Google App Script )GCP (Google Could Platform)JavaScriptNode.js

CLASPを使ってGAS (Google App Script)をデプロイする

GAS(Google App Script)を使おうと思ったのですが、Serverless Framework的な管理ツールが欲しかったので、ますCLASPから触ってみました。 CLIのインストール CLASPはnode […]

広告ここから
広告ここまで

GAS(Google App Script)を使おうと思ったのですが、Serverless Framework的な管理ツールが欲しかったので、ますCLASPから触ってみました。

CLIのインストール

CLASPはnodejs製のライブラリなので、npmでインストールします。

$ npm i -g @google/clasp
$ clasp -v
2.2.1

o$ clasp
Usage: clasp <command> [options]

clasp - The Apps Script CLI

Options:
  -v, --version                               
  -h, --help                                  output usage information

Commands:
  login [options]                             Log in to script.google.com
  logout                                      Log out
  create [options]                            Create a script
  clone [options] [scriptId] [versionNumber]  Clone a project
  pull [options]                              Fetch a remote project
  push [options]                              Update the remote project
  status [options]                            Lists files that will be pushed by clasp
  open [options] [scriptId]                   Open a script
  deployments                                 List deployment ids of a script
  deploy [options]                            Deploy a project
  undeploy [options] [deploymentId]           Undeploy a deployment of a project
  version [description]                       Creates an immutable version of the script
  versions                                    List versions of a script
  list                                        List App Scripts projects
  logs [options]                              Shows the StackDriver logs
  run [options] [functionName]                Run a function in your Apps Scripts project
  apis [options]                              List, enable, or disable APIs
    list
    enable <api>
    disable <api>
  help                                        Display help
  setting|settings [settingKey] [newValue]    Update <settingKey> in .clasp.json
  *                                           Any other command is not supported

ログイン

Googleアカウントにソースをデプロイするため、まずログインする必要があります。

$  clasp login

Chromeが立ち上がり、認証系のフロー操作を促されますので終わらせましょう。

ログインに成功すると、~/.clasprc.jsonが生成されます。

作成

ディレクトリの作成はDIYの様子です、必要なファイルの設置やGASプロジェクトの作成をやってくれます。

$ mkdir calander-app && cd calander-app
$ clasp create calander-app --title CalanderApp --rootDir src
? Create which script? 
❯ standalone 
  docs 
  sheets 
  slides 
  forms 
  webapp 
  api 

エラーが表示されることもあります。以下のメッセージが表示された時は、App Script APIを有効化しましょう。

User has not enabled the Apps Script API. Enable it by visiting https://script.google.com/home/usersettings then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

コードを記述する

rootをsrcに設定していますが、package.jsonは.clasp.jsonの配置されているディレクトリで問題ありません。

$ npm init -y

# TypeScriptで書くならこれも入れる
$ yarn add -D @types/google-apps-script

関数をグローバル変数に定義する必要がありますので、場合によっては以下のような定義が必要になります。

import {getUpdatedCalander} from './Code'
// プロパティが無いと言われるのを防ぐ程度の型定義
declare const global: {
  [x: string]: any ;
}

global.getUpdatedCalander = function(e: any) {
  return getUpdatedCalander(e)
}

コードをアップロード / デプロイする

コードのアップロードは、clasp pushで実行できます。

プロジェクトのデプロイはclasp deployなので混同しないように注意しましょう。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts