39 lines
940 B
JavaScript
39 lines
940 B
JavaScript
|
|
const axios = require('../utils/request');
|
||
|
|
const logger = require('../utils/logger');
|
||
|
|
|
||
|
|
const APPID = process.env.BOT_APPID;
|
||
|
|
const CLIENT_SECRET = process.env.BOT_CLIENT_SECRET;
|
||
|
|
|
||
|
|
let accessToken = '';
|
||
|
|
let expireAt = 0;
|
||
|
|
|
||
|
|
async function getAccessToken() {
|
||
|
|
const now = Date.now() / 1000;
|
||
|
|
if (accessToken && expireAt - now > 60) {
|
||
|
|
return accessToken;
|
||
|
|
}
|
||
|
|
const url = 'https://bots.qq.com/app/getAppAccessToken';
|
||
|
|
const res = await axios.post(url, {
|
||
|
|
appId: APPID,
|
||
|
|
clientSecret: CLIENT_SECRET
|
||
|
|
});
|
||
|
|
accessToken = res.data.access_token;
|
||
|
|
expireAt = now + parseInt(res.data.expires_in, 10);
|
||
|
|
logger.info('获取access_token成功');
|
||
|
|
return accessToken;
|
||
|
|
}
|
||
|
|
|
||
|
|
async function getGuildList() {
|
||
|
|
const token = await getAccessToken();
|
||
|
|
const res = await axios.get('/users/@me/guilds', {
|
||
|
|
headers: {
|
||
|
|
Authorization: `QQBot ${token}`
|
||
|
|
}
|
||
|
|
});
|
||
|
|
return res.data;
|
||
|
|
}
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
getAccessToken,
|
||
|
|
getGuildList,
|
||
|
|
};
|