Я начну с описания того, чего я пытаюсь достичь. В настоящее время я работаю над диссон-ботом для моего клана Destiny 2, одна из команд, которые я пытаюсь реализовать, - это команда joinid, в которой вы будете использовать команду и @ a user, и она вернет steamID пользователей. К сожалению, бот-дискорд не имеет доступа к соединениям пользователя-дискордера. Решение, которое я придумал, состояло в том, чтобы сделать Oauth2-вход для членов клана, когда они авторизируются, они авторизуют приложение для получения информации о соединении из API-интерфейса Discord, который затем сохраняется в базе данных. Приложение Oauth2 закончено и работает, проблемы заключаются в том, что бот извлекает данные из базы данных. До сих пор я пробовал Model.find
только вчера, когда он возвращал безумное количество информации, намного превышающее фактический документ, однако сегодня он возвращает только [объект Object], поэтому я, должно быть, испортил код. Вероятно, стоит упомянуть, что это мой первый JavaScript проект.
Вот схема для документов MongoDB:
const UserSchema = new mongoose.Schema({
discordId: {type: String, required: true},
username: {type: String, required: true},
connection: {type: Array, required: true}
});
const DiscordUser = module.exports = mongoose.model('User', UserSchema);
Я приложил изображения того, как документы выглядят в базе данных
И вот код команды, которую я имею до сих пор:
if (cmd.includes("joinid")) {
playerid = cmd.slice(10, -1);
const steamidentifier = DiscordUser.find({ discordId: playerid});
console.log(`${steamidentifier}`);
}
Глядя на изображение, вы видите, что для каждого соединения есть отдельные объекты (т.е. Spotify, battle. net, steam, twitch, et c. et c.) Но, насколько мне известно, steamID - это единственный идентификатор с 17 цифрами, состоящими только из цифр, поэтому я планировал использовать его для идентификации steamID. , Поэтому я спрашиваю, есть ли способ, во-первых, извлечь фактический документ из базы данных с помощью discordId, а затем, если есть способ легко выбрать фактический steamID из массива.
https://i.stack.imgur.com/JmeN3.png