1.環境準備

Pleiades2021をダウンロード

画像2

nodeclipseがなくなってて焦った(^_^;)けど,デフォルトで使えるようになってたのでOK!(∩´∀`)∩

ゲームの仕様はSpreadSheet上に作成し,それをサーバーが読み取って構築する.SpreadSheetを読むためにサーバー用のサービスアカウントを作成する.

画像2

サービスアカウントは昔作成したプロジェクト「Negima!-Taaisen」上の「philosophastra」を再利用.鍵は新しく作成する.

画像3

鍵作成時にダウンロードされるファイルに,SpreadSheetにアクセスするための鍵が含まれる.これを使うと,"philosophastra@negima-taisen.iam.gserviceaccount.com"に共有したSpreadSheetの情報を読み取れる.

画像4

取り合えずSpreadSheetの読み取りをやってみる.
・参考
「https://www.1ft-seabass.jp/memo/2020/05/08/npm-googleapis-google-sheet-await-async/」「https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/get#http-request」

const {google} = require('googleapis');
const sheets = google.sheets('v4');
const fs = require("fs");

const credsFile = "@@@@@@.json";

async function main()
{
	const creds = await readCreds();
//	console.log(creds);
	
	// JSON Web Token(JWT)の設定
	const jwtClient = new google.auth.JWT(
		creds.client_email,
		null,
		creds.private_key,
		["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive"]
	);
	
	// 認証が通るか確認
	try {
		result = await jwtClient.authorize();
	}
	catch(error) {
		console.log("Auth Error: " + error);
	}
//	console.log(jwtClient);

	const request = {
		spreadsheetId: "@@@@@@",
		range: "シート1!R1C1:R3C2",
		majorDimension: "ROWS",
		valueRenderOption: "FORMATTED_VALUE",
		dateTimeRenderOption: "SERIAL_NUMBER",
   	auth: jwtClient,
	};

	try
	{
		const response = (await sheets.spreadsheets.values.get(request)).data;
		// TODO: Change code below to process the `response` object:
		console.log(JSON.stringify(response, null, 2));
	}
	catch (err) {
		console.error(err);
	}
}

main();

async function readCreds()
{
	let creds = null;
	
	await new Promise((resolve, _reject) =>
	{
		fs.readFile(credsFile, "utf-8", (err, data) =>
		{
			if(err) {
				throw err;
			}
	
			creds = JSON.parse(data);
			
			resolve();
		});
	})
	
	return creds;
}

読み込み成功(∩´∀`)∩

画像5


この記事が気に入ったらサポートをしてみませんか?