auth-googleapis
v1.1.17
Published
<img src="https://avatars0.githubusercontent.com/u/1342004?v=3&s=96" alt="Google Inc. logo" title="Google" align="right" height="96" width="96"/>
Downloads
11
Readme
Auth for Google APIs Node.js Client
Node.js client library for using Google APIs. Support for authorization and authentication with OAuth 2.0, API Keys and JWT tokens is included.
This package will help you to create OAuth2 Client for npm "googleapis" You have to define the params and credential file as below .
import {oAuth2} from 'auth-googleapis';
const authParams = {
scopes : ['https://www.googleapis.com/auth/drive','https://www.googleapis.com/auth/photoslibrary'],
credentialPath : './credential.json',
tokenPath : './save-token-here.json'
}
const oAuth2Client = await new oAuth2(authParams).client;
Example : credential file credential.json
//credential.json
{
"installed": {
"client_id": "??????????????.apps.googleusercontent.com",
"project_id": "my-project-????",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_secret": "?????????????????????????",
"redirect_uris": [
"urn:ietf:wg:oauth:2.0:oob",
"http://localhost"
]
}
}
save token file will look like:
{
"access_token": "????????????",
"refresh_token": "?????????????",
"scope": "https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/photoslibrary",
"token_type": "Bearer",
"expiry_date": 1578389653646
}
Exmample code upload file to gdrive:
import * as fs from "fs";
import {oAuth2} from 'auth-googleapis';
const {google} = require('googleapis');
testUpload();
// Tests
async function testUpload() {
const authParams = {
scopes: [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/photoslibrary"
],
tokenPath: "./token/google-api.json",
credentialPath: "./credential/google-api.json"
};
//Create Goolge OAuth client
const oAuth2Client = await new oAuth2(authParams).client;
let params = {
name: "test.png",
mimeType: "image/png",
parents: ["1PfOwDNMxfFe3SdPCMEY4E9bGs5QMbi3o"]
};
//Then pass to google apis
const drive = google.drive({ version: "v3", oAuth2Client });
//console.log('content-length : ',params.headers['content-length'])
const fileMetadata = {
name: params.name,
mimeType: params.mimeType,
parents: ["1PfOwDNMxfFe3SdPCMEY4E9bGs5QMbi3o"]
};
const media = {
mimeType: params.mimeType,
body: fs.createReadStream(params.name)
};
const res = await drive.files.create(
{
resource: fileMetadata,
media: media,
fields: "id"
},
function(err, file) {
if (err) {
// Handle error
console.error(err);
} else {
//console.log('File Id:', file);
}
}
);
}