Tag: discord

Discord添加公会成员401错误尽管显然有效访问令牌

我是Discord API的新手,我正在开发一个项目,需要能够以编程方式添加一个公会成员。 我已经学会了如何获取授权代码(带有identify和guilds.join范围),将其兑换为访问令牌,并获取用户的ID。 最后一步是使用访问代码和用户ID来添加公会。 此命令详述如下: https://discordapp.com/developers/docs/resources/guild#add-guild-member 我似乎需要向此URL发送PUT请求: https://discordapp.com/api/guilds/[GuildID]/members/[UserID] 但这导致了这种反应: {“code”:0,“message”:“401:未经授权”} 我尝试在Authorization标头中包含访问令牌: 授权:持票人[编辑] 我还尝试在请求中添加JSON主体: { “的access_token”: “[删除]”} 两者都没有奏效。 不出所料,同时使用两者并没有奏效。 我想知道这是否是权限问题,但Discord确认我有guilds.join范围。 这是我在交换访问令牌的授权码时收到的JSON: {“access_token”:“[Redacted]”,“token_type”:“Bearer”,“expires_in”:604800,“refresh_token”:“[Redacted]”,“scope”:“识别guilds.join”} 识别范围有效,因为我能够检索用户及其ID。 但是guilds.join似乎不起作用。 我在下面提供了一些测试代码。 我已经标记了“选项1”和“选项2”行,以表示我通常不会在同一请求中执行这两种访问代码方法。 但正如我之前提到的,我确实尝试了两种方法,但仍然有401错误。 using (WebClient client = new WebClient()) { client.Headers.Add(HttpRequestHeader.ContentType, “application/x-www-form-urlencoded”); client.Headers.Add(HttpRequestHeader.Authorization, “Bearer [Redacted]”);//Option 1 string output = client.UploadString ( “https://discordapp.com/api/guilds/[GuildID]/members/[UserID]”, WebRequestMethods.Http.Put, “{\”access_token\”:\”[Redacted]\”}”//Option 2 ); } 因为我想了解其工作方式的内在性,我宁愿知道如何使用普通的Web请求(例如HttpWebRequest和WebClient,而不是使用某些OAuth库)。