首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将用户添加到不一致行会产生未经授权的错误

将用户添加到不一致行会产生未经授权的错误
EN

Stack Overflow用户
提问于 2019-08-21 02:05:27
回答 1查看 1.1K关注 0票数 2

编辑:我想知道我添加的机器人是不是错了?该机器人与用户的OAuth 2位于同一应用程序上。该机器人是使用以下命令添加的:https://discordapp.com/oauth2/authorize?client_id={my id}&scope=bot&permissions=267906503

我有一个使用https://github.com/wohali/oauth2-discord-new的不一致的OAuth2连接,这将返回不一致的用户和我的访问令牌。它的范围包括:

代码语言:javascript
复制
   $authUrl = $this->provider->getAuthorizationUrl([
      'scope' => [
        'identify',
        'email',
        'guilds.join']
      ]);

使用相同的discord应用程序,我设置了一个机器人。机器人是工会的成员,并且机器人对聊天ping做出响应(即,它正在工作)。机器人具有create instant invite权限。

在我拿回不一致的用户,并刚刚生成访问令牌之后,我正在尝试将该用户添加到我的公会中。

我先是用restcord库尝试了一下,然后直接用guzzle试过了。

代码语言:javascript
复制
    $guzzle = new Client(['base_uri' => 'https://discordapp.com/api/v6']);

    $guildId = $this->discordApplication->guildId();
    $request = new Request('PUT', 'https://discordapp.com/api/v6/guilds/'.$guildId.'/members/'.$user->discordId(), [
      'Authorization' => 'Bot '.$this->discordApplication->accessToken()->__toString(),
      "Content-Type" => "application/json"
    ] );
    var_dump($request);
    $response = $guzzle->send($request);
    var_dump($response);

它正在生成401错误。我检查了herehere,以确保我的内容类型是正确的,我的authorization头是正确的,我的OAuth作用域是正确的,我的机器人权限是正确的。

输出为:

代码语言:javascript
复制
object(GuzzleHttp\Psr7\Request)#82 (7) {
  ["method":"GuzzleHttp\Psr7\Request":private]=>
  string(3) "PUT"
  ["requestTarget":"GuzzleHttp\Psr7\Request":private]=>
  NULL
  ["uri":"GuzzleHttp\Psr7\Request":private]=>
  object(GuzzleHttp\Psr7\Uri)#83 (7) {
    ["scheme":"GuzzleHttp\Psr7\Uri":private]=>
    string(5) "https"
    ["userInfo":"GuzzleHttp\Psr7\Uri":private]=>
    string(0) ""
    ["host":"GuzzleHttp\Psr7\Uri":private]=>
    string(14) "discordapp.com"
    ["port":"GuzzleHttp\Psr7\Uri":private]=>
    NULL
    ["path":"GuzzleHttp\Psr7\Uri":private]=>
    string(60) "/api/v6/guilds/{right guild id}/members/{the right user id}"
    ["query":"GuzzleHttp\Psr7\Uri":private]=>
    string(0) ""
    ["fragment":"GuzzleHttp\Psr7\Uri":private]=>
    string(0) ""
  }
  ["headers":"GuzzleHttp\Psr7\Request":private]=>
  array(3) {
    ["Host"]=>
    array(1) {
      [0]=>
      string(14) "discordapp.com"
    }
    ["Authorization"]=>
    array(1) {
      [0]=>
      string(34) "Bot {my oauth2 bearer access token}"
    }
    ["Content-Type"]=>
    array(1) {
      [0]=>
      string(16) "application/json"
    }
  }
  ["headerNames":"GuzzleHttp\Psr7\Request":private]=>
  array(3) {
    ["authorization"]=>
    string(13) "Authorization"
    ["content-type"]=>
    string(12) "Content-Type"
    ["host"]=>
    string(4) "Host"
  }
  ["protocol":"GuzzleHttp\Psr7\Request":private]=>
  string(3) "1.1"
  ["stream":"GuzzleHttp\Psr7\Request":private]=>
  NULL
}
Client error: `PUT https://discordapp.com/api/v6/guilds/{guildid}/members/{userid}` resulted in a `401 UNAUTHORIZED` response:
{"code": 0, "message": "401: Unauthorized"}
EN

回答 1

Stack Overflow用户

发布于 2019-08-21 03:11:41

我想通了。

代码语言:javascript
复制
   $request = new Request(
      'PUT', 'https://discordapp.com/api/v6/guilds/'.$guildId.'/members/'.$user->discordId(),
      [
        'Authorization' => 'Bot '.$this->botToken,
        "Content-Type" => "application/json"
      ],
      '{"access_token" : "'. $this->discordApplication->accessToken()->__toString().'"}'
      );
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57579314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档