有没有办法让Discord机器人从Google表格中查找数据?
示例情况: 如果Discord机器人出现命令“!points Bob”,则该机器人将在Google工作表中查找“ Bob”并返回鲍勃拥有的点数。
我认为我会使用google-spreadsheet模块,但我是新手。有没有人可以帮忙?
有没有办法让Discord机器人从Google表格中查找数据?
示例情况: 如果Discord机器人出现命令“!points Bob”,则该机器人将在Google工作表中查找“ Bob”并返回鲍勃拥有的点数。
我认为我会使用google-spreadsheet模块,但我是新手。有没有人可以帮忙?
您必须创建discord bot才能解析这些命令并将其通过管道传递到API。
要访问API,必须对其进行授权。
请参阅Quick-start Guide以了解操作方法。
在授权您的应用程序之后,只需根据您的聊天输入调用该方法即可。
希望这会有所帮助!
,您可以尝试类似的方法,我尚未对此进行测试!
我为此使用了googleapis
npm-package。
/*
Assuming your table is something like this:
|------------------|
| Player | Points |
|------------------|
| Player1 | 0 |
| Player2 | 100 |
|------------------|
*/
function checkPoints(auth,name) {
return new Promise((resolve,reject) => {
const sheets = google.sheets({ version: 'v4',auth });
sheets.spreadsheets.values.get({
spreadsheetId: '<your spreadsheetid>',range: '<Your Points sheetname>!A2:B',// A2 because i assume you got a title like "Name/Username" etc.
},(err,res) => {
if (err) return console.log("The API returned an error: " + err);
let list = [];
for(let i = 0; i < res[0].length; i++){ //Loop throw all Players
if(res[0][i] == name){
resolve(res[1][i]); //Returns the Points of the Player
}
}
}
);
});
}
要使用此功能,必须通过api传递身份验证(请参阅googleapis
软件包的文档)和名称。该函数返回一个Promise,然后您就走了,就像我说过的,我还没有在不和谐的bot中测试过这个。
checkPoints(auth,name).then(points =>{
console.log("Points of player " + name + ": " + points);
});