You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需复杂框架,如何通过Discord API创建服务器即时邀请链接?

如何用OAuth2授权码生成Discord即时邀请链接

我明白你不想被复杂的框架束缚,只想用最基础的方式生成Discord即时邀请链接——那咱们就直接走Discord的原生API流程,一步步解决问题:

第一步:用授权码交换访问令牌

你拿到的授权码只是个「临时凭证」,得先把它换成访问令牌(Access Token),才能调用Discord的API。

你需要向Discord的令牌端点发送一个POST请求,参数如下:

  • 请求地址:https://discord.com/api/oauth2/token
  • 请求头:Content-Type: application/x-www-form-urlencoded
  • 请求体参数:
    • client_id: 你的应用客户端ID(和授权链接里的一致)
    • client_secret: 你的应用客户端密钥(在Discord开发者后台可以找到)
    • grant_type: 固定值authorization_code
    • code: 你拿到的授权码
    • redirect_uri: 和授权链接里的完全一致(编码前的原地址,比如http://localhost:3000/callback)

举个curl的例子:

curl -X POST "https://discord.com/api/oauth2/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&code=YOUR_AUTH_CODE&redirect_uri=YOUR_REDIRECT_URI"

成功的话,你会收到包含access_token、token_type等字段的JSON响应,把access_token存好,接下来要用它。

第二步:调用API创建即时邀请链接

现在有了访问令牌,就可以直接调用Discord的创建邀请API了。

前提条件

  • 你要创建邀请的服务器频道ID(可以在Discord开启开发者模式后,右键频道复制ID)
  • 你的授权账号在该服务器拥有创建即时邀请的权限(也就是CREATE_INSTANT_INVITE权限)

发送请求

  • 请求地址:https://discord.com/api/v10/channels/{CHANNEL_ID}/invites(把{CHANNEL_ID}换成实际的频道ID)
  • 请求头:
    • Authorization: Bearer YOUR_ACCESS_TOKEN(把YOUR_ACCESS_TOKEN换成第一步拿到的令牌)
    • Content-Type: application/json
  • 请求体(JSON格式,按需调整参数):
    {
      "max_age": 0,          // 邀请有效期(秒),0表示永久有效
      "max_uses": 1,         // 可使用次数,1表示仅限1人使用,0表示无限制
      "temporary": false,    // 是否临时成员(退出服务器后自动移除),false表示永久成员
      "unique": true         // 是否生成唯一邀请链接
    }
    

举个原生JS的例子(不用任何框架就能跑):

const channelId = "YOUR_CHANNEL_ID";
const accessToken = "YOUR_ACCESS_TOKEN";

fetch(`https://discord.com/api/v10/channels/${channelId}/invites`, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${accessToken}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    max_age: 0,
    max_uses: 1,
    temporary: false,
    unique: true
  })
})
.then(response => response.json())
.then(data => {
  console.log("生成的邀请链接:", data.url);
})
.catch(error => console.error("出错了:", error));

成功响应里的url字段就是你要的即时邀请链接啦!

关键注意事项

  • 授权链接的scope必须包含guilds(这样才能获取服务器和频道的访问权限),如果之前的授权链接没加,得重新生成授权链接并添加scope=guilds参数
  • 确保你的应用在Discord开发者后台的OAuth2页面里,已经把redirect_uri添加到允许列表里,否则令牌交换会失败

内容的提问来源于stack exchange,提问作者Giju Gijja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:25:27