Last active
January 1, 2020 06:46
-
-
Save draffensperger/58aeb77ab4e1f662e65cbb68945372ef to your computer and use it in GitHub Desktop.
Record Event to Google Sheets via Cloud Function
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Records a event with a given timestamp to a google sheet | |
const { google } = require("googleapis"); | |
exports.recordEvent = async (req, res) => { | |
if (!crypto.timingSafeEqual(Buffer.from(req.body.key), | |
Buffer.from(process.env.KEY)) { | |
return; | |
} | |
// block on auth + getting the sheets API object | |
const auth = await google.auth.getClient({ | |
scopes: ["https://www.googleapis.com/auth/spreadsheets"] | |
}); | |
const sheets = google.sheets({ version: "v4", auth }); | |
const appendRequest = { | |
spreadsheetId: process.env.SPREADSHEET_ID, | |
range: process.env.RANGE, | |
valueInputOption: 'RAW', | |
resource: { | |
values: [[new Date().toISOString(), req.body.event]], | |
} | |
}; | |
await new Promise((resolve, reject) => { | |
sheets.spreadsheets.values.append(appendRequest, (err, resp) => { | |
if (err) { | |
console.error(err); | |
reject(); | |
} | |
console.log(JSON.stringify(resp, null, 2)); | |
resolve(); | |
}); | |
}); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment