Search code examples
google-apps-scriptgoogle-drive-apigoogle-apps-script-addon

Add container-bound script to a Google Docs file programmatically


I am uploading files to Google Drive using the Drive REST API. I would like to have some default add-ons enabled on those files by default. I was reading about container-bound scripts here.

But it is only possible to add container-bound script after opening the file in Google Docs UI. Is there any way to bind a script to a file while uploading or after uploading programmatically?


Solution

  • You can create the project of container-bound script type in Google Docs using Apps Script API. And when you have some scripts and you want to add the scripts in the project of container-bound script type, please do the following flow.

    1. Create new project in Google Docs

    You can create it using Method: projects.create.

    Endpoint :

    POST https://script.googleapis.com/v1/projects
    

    Request body :

    {
      "title": string, // project name
      "parentId": string, // file ID of Google Docs
    }
    

    2. Import scripts in created project

    You can import the scripts in the created project using Method: projects.updateContent.

    Endpoint :

    PUT https://script.googleapis.com/v1/projects/{scriptId}/content
    

    Request body :

    {
      "files": [
        {
          object(File)
        }
      ],
    }
    

    Note :

    • In order to use this API, please include https://www.googleapis.com/auth/script.projects in the scopes.

    References :

    If this was not what you want, I'm sorry.