Google DriveのAPIをNode.jsから触るメモ
Google Drive API v3を触ります。
google-auth-token-generatorを使ってtoken.jsonの作成をしてみる版です。
以前書いた記事も参考に: https://qiita.com/n0bisuke/items/ff1479cd14e7a0c0be0c
環境
- Node.js v15.9.0
credentials.jsonを取得
チュートリアルを参考にAPIを有効にし、credentials.jsonを手元に保存しましょう。
https://developers.google.com/drive/api/v3/quickstart/nodejs
google-auth-token-generatorでtoken.jsonを作成
google-auth-token-generatorを使うとパーミッションをつけたtoken.jsonを作成しやすいです。
credentials.json
のあるディレクトリで、以下を実行します。
$ npx google-auth-token-generator
GoogleDriveを選択し、パーミッションを選択して進めましょう。
ファイルの一覧取得のパーミッションはdrive.metadata.readonly
になります。
https://www.googleapis.com/auth/drive.metadata.readonly
token.json
が保存されます。
app.jsを作成
credentials.json
とtoken.json
と同じディレクトリにapp.jsを作成する想定です。
'use strict';
const fs = require('fs');
const {google} = require('googleapis');
const googleAuth = () => {
const CREDENTIALS_PATH = 'credentials.json';
const TOKEN_PATH = 'token.json';
const credentials = JSON.parse(fs.readFileSync(CREDENTIALS_PATH, 'utf8'));
const token = JSON.parse(fs.readFileSync(TOKEN_PATH, 'utf8'));
const {client_secret, client_id, redirect_uris} = credentials.installed;
const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);
oAuth2Client.setCredentials(token);
return oAuth2Client;
};
(async () => {
const auth = googleAuth();
const drive = google.drive({version: 'v3', auth});
try {
const res = await drive.files.list({
pageSize: 10,
fields: 'nextPageToken, files(id, name)',
});
const files = res.data.files;
if (files.length) {
console.log('Files:');
files.map((file) => console.log(`${file.name} (${file.id})`));
} else {
console.log('No files found.');
}
} catch (error) {
console.log('The API returned an error: ' + error);
}
})();
$ node app.js
参考記事
Author And Source
この問題について(Google DriveのAPIをNode.jsから触るメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/n0bisuke/items/4af8f17fb4fe3b9b4831著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .