У меня проблема с ботом Discord, пытающимся получить доступ к Google Sheets API v4.0. Я хочу, чтобы он читал, записывал и обновлял данные на листе. Мой код отлично работает для приложения Node.js, но когда я помещаю свой код в бота Discord, он выдает такую ошибку:
UnhandledPromiseRejectionWarning: Error: The request is missing a valid API key
Я не понимаю, почему я получаю эту ошибку. Я даже сделал сервисный аккаунт для своего бота Discord.
Вот код бота Discord.
require('dotenv').config();
const sheet = require('./sheet');
const { Client } = require('discord.js');
const { sheets } = require('googleapis/build/src/apis/sheets');
const client = new Client();
Код файла листа:
const {google} = require('googleapis');
const keys = require('./keys.json');
const client = new google.auth.JWT(
keys.client_email,
keys.private_key_id,
keys.private_key,
['https://www.googleapis.com/auth/spreadsheets']
);
client.authorize(function(err,tokens){
if(err){
console.log(err);
return;
}
// else{
// console.log('Connected');
// gsrun(client);
// }
});
const getdata = async function gsrun(cl){
const gsapi = google.sheets({version:'v4',auth:cl});
const opt = {
spreadsheetId:'1LzdhD4rb2FdElTyQCAkgb5oyeGeu0d9rT2abS4n_4i8',
range: 'A2:B5'
};
let data = await gsapi.spreadsheets.values.get(opt);
console.log(data.data.values);
}
exports.getdata = getdata;
Я предоставил доступ к идентификатору электронной почты бота на лист, который называется discordbotapi@nodejs-api-testing-discordbot.iam.gserviceaccount.com. Я также включил API Google Таблиц. Где я делаю ошибку?