You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Arghyadeep Kundu 9815729118 Removed Github Pages related files 2 years ago
.github Added workflow for GPR 2 years ago
.gitignore Initial commit 3 years ago
LICENSE Initial commit 3 years ago Added CI workflow 2 years ago
index.js Added Code 3 years ago
package-lock.json Updated dependencies & README 2 years ago
package.json Updated dependencies & README 2 years ago Added CI workflow 2 years ago

Data Logging Service in Google Sheets (Node.js)

CI Quality Gate Status npm version npm bundle size SourceRank Depfu Snyk Vulnerabilities for npm package npm NPM

A simple Node.js module for logging in Google Sheets.



Install from command line:

npm install --save google-sheets-logger


Install via package.json:

Add the following to your package.json file under dependencies

"google-sheets-logger": "1.0.2"

Basic Usage

  • Create a Google Sheets File and give access to the Service Account as described in the Authentcation secion.

  • Add the following headers (case-sensitive) to your sheet:

    • Log Id
    • Log Message
    • Log Time
  • Import the module and use as shown below.

var GoogleSheetLogger = require("google-sheets-logger");
var creds = require("./google-generated-creds.json");

// Spreadsheet key is the long id in the sheets URL
var Logger = new GoogleSheetLogger("<Spreadsheet Key>", creds);

Logger.log("1", "Sample Log Message", "2019-10-08 12:49:44");

// When Timestamp is not passed, it adds the current time as the Timestamp of the Log Message by default.
Logger.log("1", "Sample Log Message with no Timestamp");

// To add logs in sheets other than the first one of your workbook, pass the sheet index as the 4th argument.
// Index starts at 1.
Logger.log("1", "Sample Log Message", "2019-10-08 12:49:44", 3);


IMPORTANT: Google recently deprecated their ClientLogin (username+password) access, so things are slightly more complicated now. Older versions of this module supported it, so just be aware that things changed.

This is a 2-legged oauth method and designed to be "an account that belongs to your application instead of to an individual end user". Use this for an app that needs to access a set of documents that you have full access to. (read more)

Setup Instructions

  1. Go to the Google Developers Console
  2. Select your project or create a new one (and then select it)
  3. Enable the Drive API for your project
  • In the sidebar on the left, expand APIs & auth > APIs
  • Search for "drive"
  • Click on "Drive API"
  • click the blue "Enable API" button
  1. Create a service account for your project
  • In the sidebar on the left, expand APIs & auth > Credentials
  • Click blue "Add credentials" button
  • Select the "Service account" option
  • Select "Furnish a new private key" checkbox
  • Select the "JSON" key type option
  • Click blue "Create" button
  • your JSON key file is generated and downloaded to your machine (it is the only copy!)
  • note your service account's email address (also available in the JSON key file)
  1. Share the doc (or docs) with your service account using the email noted above

Further possibilities & to-do

  • Enable logging on public sheets.
  • Create Header automatically using the module.


Google Sheets Logger is published under the MIT license. For more information, see the accompanying LICENSE file.


If you find this package useful, please star the project on Github.

And, if you are willing to buy me a coffee, that would be awesome. :)