У меня есть бот Discord, который я размещаю на glitch.com, цель которого - хранить, читать и обновлять некоторые основные статистические данные для пользователей.Так как эта настройка заставляла переменные сбрасываться каждый раз, когда проект переходил в спящий режим, я успешно настроил API Google Sheets, чтобы можно было постоянно сохранять статистику пользователя в другом месте.Однако, ради бога, я не могу понять, как заставить мои переменные JavaScript получить свое значение из электронной таблицы.
В моем исходном коде просто было много переменных, в которых хранилась различная статистика каждого члена, например:
var User1Gold = 0
var User2Gold = 0
и так далее.С таким новичком, как я, было очень легко работать, но теперь я снова и снова перечитываю документацию (подозреваю, что ищу ответ здесь ) и ничего не получаю в открытом виде.Есть ли способ сделать мои переменные равными определенной ячейке определенной электронной таблицы и просто покончить с этим, или это далеко не так просто?Возможно, что-то вроде этого:
var User1Gold = {spreadsheetId: 'iD', range: 'B3',};
Редактировать
Хорошо!Я двинулся вперед!Я смог заставить своего бота получить доступ к электронной таблице, чтобы найти определенное значение, а затем отправить сообщение с этим значением.Как раз то, что я хотел, кроме того, что, кажется, он мог сделать это только один раз?Это пример кода, который поставляется с API, который я настроил так, чтобы моя переменная равнялась одной ячейке из моей электронной таблицы.
var myvariable
function getvalue(auth) {
const sheets = google.sheets({version: 'v4', auth});
sheets.spreadsheets.values.get({
spreadsheetId: 'SpreadsheetId',
range: 'Sheet1!B3',
}, (err, res) => {
if (err) return console.log('The API returned an error: ' + err);
const rows = res.data.values;
if (rows.length) {
rows.map((row) => {
myvariable = (`${row[0]}`);
});
} else {
console.log('No data found.');
}
});
}
Это работает так, как задумано, но я, очевидно, хочу сослаться на несколько значений измоя таблица (очки здоровья пользователя, монеты и т. д.).Но когда я скопировал вышеизложенное во второй раз, присвоив переменной и функции другое имя, это просто не сработало.Я получаю сообщение об ошибке:
(узел: 2930) UnhandledPromiseRejectionWarning: DiscordAPIError: Отсутствуют разрешения
Что я делаю неправильно?Почему у моей первой функции, по-видимому, есть разрешения, а у второй, которая идентична, нет?Есть ли более простой способ сделать это, чем объявить функцию для каждого значения, которое я хочу получить?
Редактировать 2
Мне удалось исправить ошибку (не знаю, как быть честным), но моя проблема сохраняется.Я не могу создать вторую функцию для извлечения второго значения из моей электронной таблицы и присвоения его второй переменной.Я не получаю ошибок в консоли, но программа просто не делает этого, в то время как первая функция (та, что в примере) работает просто отлично.