Skip to content

anmiles/google-api-wrapper

Repository files navigation

@anmiles/google-api-wrapper

Wrapper around googleapis for getting data shortly

  • provides quick interface for getting google API data
  • incapsulates auth process
  • combines getting paged items in one call

Installation

npm install @anmiles/google-api-wrapper

Usage

Authorization

/* auth.js */

import { createProfile, login } from '@anmiles/google-api-wrapper';

createProfile("username");

// Persistent credentials will be generated and stored to credentials file.
// Next `login` call will re-use persistent credentials without showing oauth window
login("username");

Example with persisted auth

/* calendar.js */

import { calendar } from 'googleapis/build/src/apis/calendar';
import { getProfiles, getAPI } from '@anmiles/google-api-wrapper';

require('./auth');

getProfiles().map(async (profile) => {
	// Persistent credentials will be generated and stored to credentials file.
	// Next `getAPI` call will re-use persistent credentials without showing oauth window
	const calendarAPI = getAPI((auth) => calendar({ version : 'v3', auth }), profile);
	const events = await calendarAPI.getItems((api) => api.events, { timeMax: new Date().toISOString() });
	events.forEach((event) => console.log(`Event: ${event.summary}`));
});

Example with temporary auth

/* videos.js */

import { youtube } from 'googleapis/build/src/apis/youtube';
import { getProfiles, getAPI } from '@anmiles/google-api-wrapper';

getProfiles().map(async (profile) => {
	// Temporary credentials will be generated and not stored to credentials file
	// Next `getAPI` will start authorization again with showing oauth window
	const youtubeAPI = getAPI((auth) => youtube({ version : 'v3', auth }), profile, { temporary: true });
	const videos = await youtubeAPI.getItems((api) => api.playlistItems, { playlistId : 'LL', part : [ 'snippet' ], maxResults : 50 });
	videos.forEach((video) => console.log(`Downloaded: ${video.snippet?.title}`));
});

Live examples