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なので混同しないように注意しましょう。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark