This Node.js module authenticates with Google API and parse Google Docs to human-readable JSON or Markdown without the need to use cumbersome methods like exporting it in HTML via Google Drive API and then parse it back to other formats.
When you use Google Docs API V1, the body that comes with the documents.get
method is completely fragmented. It's a JSON that you need to recursively parse to get the document into human-readable format. For my luck, there's a Gatsby plugin that internally has this implementation already: gatsby-source-google-docs. So I've extracted this implementation into this module and exposed it with a Service Authentication. For more information about this type of authentication, follow this tutorial: How to authenticate to any Google API
This module works like a charm, but it's for personal use, primarily. It will follow semantic version best practices, but will not have any automated tests in the short term.
const parseGoogleDocsJson = require("parse-google-docs-json");
async function start() {
const parsed = await parseGoogleDocsJson({
documentId: "1ymKw2OGcMfc02XdEEWdy22a_zUAlCxyN3P5Ab4c",
clientEmail: "service@iam.gserviceaccount.com",
privateKey: "-----BEGIN PRIVATE KEY...",
});
console.log(parsed.toJson());
console.log(parsed.toMarkdown());
}
start();
clientEmail = process.env.PARSE_GOOGLE_DOCS_CLIENT_EMAIL
privateKey = process.env.PARSE_GOOGLE_DOCS_PRIVATE_KEY