Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将用户添加到discord guild会生成未经处理的错误_Php_Discord - Fatal编程技术网

Php 将用户添加到discord guild会生成未经处理的错误

Php 将用户添加到discord guild会生成未经处理的错误,php,discord,Php,Discord,编辑:我想知道我是否添加了错误的bot?bot与用户的OAuth 2位于同一应用程序上。此bot添加了以下内容: {my id}&scope=bot&permissions=267906503 我与Discord建立了OAuth2连接,使用它返回Discord用户和我的访问令牌。它的范围包括: $authUrl = $this->provider->getAuthorizationUrl([ 'scope' => [ 'identify',

编辑:我想知道我是否添加了错误的bot?bot与用户的OAuth 2位于同一应用程序上。此bot添加了以下内容: {my id}&scope=bot&permissions=267906503

我与Discord建立了OAuth2连接,使用它返回Discord用户和我的访问令牌。它的范围包括:

   $authUrl = $this->provider->getAuthorizationUrl([
      'scope' => [
        'identify',
        'email',
        'guilds.join']
      ]);
使用相同的discord应用程序,我设置了一个bot。该机器人是公会的成员,并且该机器人对聊天ping做出响应(这意味着它正在工作)。bot具有创建即时邀请权限

在我获得discord用户并生成访问令牌之后,我正试图将该用户添加到我的公会中

我在restcord库中尝试过这一点,然后直接用guzzle

    $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错误。我已经查看并确保我的内容类型正确,授权头正确,OAuth范围正确,bot权限正确

输出为:

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"}

我想出来了

   $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().'"}'
      );