1.環境準備
Pleiades2021をダウンロード
nodeclipseがなくなってて焦った(^_^;)けど,デフォルトで使えるようになってたのでOK!(∩´∀`)∩
ゲームの仕様はSpreadSheet上に作成し,それをサーバーが読み取って構築する.SpreadSheetを読むためにサーバー用のサービスアカウントを作成する.
サービスアカウントは昔作成したプロジェクト「Negima!-Taaisen」上の「philosophastra」を再利用.鍵は新しく作成する.
鍵作成時にダウンロードされるファイルに,SpreadSheetにアクセスするための鍵が含まれる.これを使うと,"philosophastra@negima-taisen.iam.gserviceaccount.com"に共有したSpreadSheetの情報を読み取れる.
取り合えず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;
}
読み込み成功(∩´∀`)∩