Skip to content

arghyadeep-k/google-sheets-logger

Repository files navigation

Data Logging Service in Google Sheets (Node.js)

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

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

Installation

NPM

Install from command line:

npm install --save google-sheets-logger

Or

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);

Authentication

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.

Service Account (recommended method)

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.

Links

License

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




PS:

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. :)