プロジェクト管理

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Apps Script API を使用すると、アプリから Apps Script プロジェクトを作成、変更できます。このページの例は、API を使用して一般的なプロジェクト管理オペレーションを行う方法を示しています。

注: Apps Script API を使用するには、事前に有効にしておく必要があります。

以下の例では、scriptId プレースホルダを使用して、スクリプト プロジェクト ID を指定する場所を示しています。スクリプト ID を確認する手順は次のとおりです。

  1. Apps Script プロジェクトで、左上のプロジェクト設定アイコン をクリックします。
  2. [スクリプト ID] の横にある [コピー] をクリックします。

新しい Apps Script プロジェクトを作成する

次の projects.create リクエストによって新しいスタンドアロン スクリプトが作成されます。

POST https://scriptmanagement.googleapis.com/v1/projects/
{
  "title": "My Script"
}

プロジェクトのメタデータを取得する

次の projects.get リクエストでは、スクリプト project's metadata を取得します。

GET https://scriptmanagement.googleapis.com/v1/projects/scriptId

レスポンスは、次のようなオブジェクトで構成されます。

{
  "scriptId": "scriptId",
  "title": "My Title",
  "parentId": "parentId",
  "projectOrigin": "APPS_SCRIPT_IDE",
  "cloudProject": "cloudProject",
  "encryptedCloudProjectToken": "token",
  "securityZone": "STANDARD",
  "createTime": "2017-10-02T15:01:23.045123456Z",
  "updateTime": "2017-10-02T15:01:23.045123456Z",
  "creator": { "name": "Grant" },
  "lastModifyUser": { "name": "Grant" },
}

プロジェクト ファイルを取得する

次の projects.getContent リクエストによって、各スクリプト ファイルのコードソースとメタデータを含むスクリプト プロジェクトのコンテンツが取得されます。

GET https://scriptmanagement.googleapis.com/v1/projects/scriptId/content

レスポンスは、次のような Content オブジェクトで構成されます。

{
  "scriptId": "scriptId",
  "files": [{
    "name": "My Script",
    "type": "SERVER_JS",
    "source": "function hello(){\nconsole.log('Hello world');}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z",
    "functionSet": {
      "values": [
        "name": "helloWorld"
      ]
    }
  }, {
    "name": "appsscript",
    "type": "JSON",
    "source": "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }]
}

プロジェクト ファイルを更新する

次の projects.updateContent リクエストでは、指定されたスクリプト プロジェクトのコンテンツを更新します。このコンテンツは HEAD バージョンとして保存され、スクリプトが API 実行可能プロジェクトとして実行されるときに使用されます。

PUT https://scriptmanagement.googleapis.com/v1/projects/scriptID/content
{
  "files": [{
    "name": "index",
    "type": "HTML",
    "source": "<html> <header><title>HTML Page</title></header> <body> My HTML </body> </html>"
  }, {
    "name": "My Script",
    "type": "SERVER_JS",
    "source": "function hello(){\nconsole.log('Hello world');}",
  }, {
    "name": "appsscript",
    "type": "JSON",
    "source": "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }]
}

レスポンスは、次のような Content オブジェクトで構成されます。

{
  "scriptId": "scriptId",
  "files": [{
    "name": "index",
    "type": "HTML",
    "source": "<html> <header><title>HTML Page</title></header> <body> My HTML </body> </html>",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }, {
    "name": "My Script",
    "type": "SERVER_JS",
    "source": "function hello(){\nconsole.log('Hello world');}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z",
    "functionSet": {
      "values": [
        "name": "helloWorld"
      ]
    }
  }, {
    "name": "appsscript",
    "type": "JSON",
    "source": "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}",
    "lastModifyUser": {
      "name": "Grant",
      "email": "grant@example.com",
    },
    "createTime": "2017-10-02T15:01:23.045123456Z",
    "updateTime": "2017-10-02T15:01:23.045123456Z"
  }]
}