Discord:通过 ID 获取用户

我正在尝试创建一个 Web 应用程序来管理我的 Discord 服务器的用户。在我的数据库中,我只存储了用户的 ID。

我尝试使用discord.js API,但据我了解,它需要一个discord 机器人才能做到这一点。那不是我想要的。我想从我的前端检索用户的信息,甚至通过调用后端函数,但没有始终在线的不和谐机器人。换句话说,我需要一些更简单的东西。

我想仅使用 id 来请求用户信息。在 JavaScript 中执行此操作的最佳方法是什么?


潇潇雨雨
浏览 265回答 2
2回答

12345678_0001

您可以使用 Discord API。首先,在此处创建一个 Discord 应用程序。完成此操作后,单击侧边栏上的“机器人”并为该应用程序创建一个机器人。在那里,您将在机器人用户名下看到一个名为“令牌”的部分。复制此内容并将其存储在安全的地方。切勿分享您的令牌,这一点很重要。如果这样做,您应该重新生成它以防止滥用。然后,您可以使用获取用户端点 ( /users/{user.id}/) 来检索用户的 ID。这应该由后端完成,因为它涉及使用机器人令牌进行身份验证。直接使用API以下是如何使用 Node.js 使用 Discord API 通过 ID 获取用户的最小示例:const fetch = require('node-fetch')// You might want to store this in an environment variable or somethingconst 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())}响应将是这样的:{  "id": "123456789012345678",  "username": "some username",  "avatar": null,  "discriminator": "1234",  "public_flags": 0,  "banner": null,  "banner_color": null,  "accent_color": null}使用库或者,您也可以使用 Discord 库来执行此操作。以下示例还处理速率限制。@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))结果将是与上面描述的相同的 JSON。对于 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 = tokenconst fetchUser = async id => client.users.fetch(id)结果fetchUser将是一个discord.jsUser对象。

慕妹3242003

你可以做的就是let&nbsp;user&nbsp;=&nbsp;message.guild.cache.get('id');(由@cherryblossom修改)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript