2 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用 Discord API。
首先,在此處創(chuàng)建一個(gè) Discord 應(yīng)用程序。完成此操作后,單擊側(cè)邊欄上的“機(jī)器人”并為該應(yīng)用程序創(chuàng)建一個(gè)機(jī)器人。在那里,您將在機(jī)器人用戶名下看到一個(gè)名為“令牌”的部分。復(fù)制此內(nèi)容并將其存儲(chǔ)在安全的地方。切勿分享您的令牌,這一點(diǎn)很重要。如果這樣做,您應(yīng)該重新生成它以防止濫用。
然后,您可以使用獲取用戶端點(diǎn) (?/users/{user.id}/
) 來檢索用戶的 ID。這應(yīng)該由后端完成,因?yàn)樗婕笆褂脵C(jī)器人令牌進(jìn)行身份驗(yàn)證。
直接使用API
以下是如何使用 Node.js 使用 Discord API 通過 ID 獲取用戶的最小示例:
const fetch = require('node-fetch')
// You might want to store this in an environment variable or something
const token = 'YOUR_TOKEN'
const fetchUser = async id => {
? const response = await fetch(`https://discord.com/api/v9/users/${id}`, {
? ? headers: {
? ? ? Authorization: `Bot ${token}`
? ? }
? })
? if (!response.ok) throw new Error(`Error status code: ${response.status}`)
? return JSON.parse(await response.json())
}
響應(yīng)將是這樣的:
{
? "id": "123456789012345678",
? "username": "some username",
? "avatar": null,
? "discriminator": "1234",
? "public_flags": 0,
? "banner": null,
? "banner_color": null,
? "accent_color": null
}
使用庫
或者,您也可以使用 Discord 庫來執(zhí)行此操作。以下示例還處理速率限制。
@discordjs/rest?+?Discord-api-類型
const {REST} = require('@discordjs/rest')
const {Routes} = require('discord-api-types/v9')
const token = 'YOUR_TOKEN'
const rest = new REST().setToken(token)
const fetchUser = async id => rest.get(Routes.user(id))
結(jié)果將是與上面描述的相同的 JSON。
對(duì)于 TypeScript 用戶:
import type {RESTGetAPIUserResult, Snowflake} from 'discord-api-types/v9'
const fetchUser = async (id: Snowflake): Promise<RESTGetAPIUserResult> =>
? rest.get(Routes.user(id)) as Promise<RESTGetAPIUserResult>
const {Client} = require('discord.js')
const token = 'YOUR_TOKEN'
const client = new Client({intents: []})
client.token = token
const fetchUser = async id => client.users.fetch(id)
結(jié)果fetchUser
將是一個(gè)discord.jsUser
對(duì)象。

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以做的就是
let user = message.guild.cache.get('id');
(由@cherryblossom修改)
添加回答
舉報(bào)