当前位置: 首页 > 知识库问答 >
问题:

将用户添加到不和谐公会会产生未使用错误

龙嘉誉
2023-03-14

编辑:我想知道我是否添加了错误的bot?bot与用户的OAuth 2位于同一应用程序上。此bot添加了以下内容:https://discordapp.com/oauth2/authorize?client_id={我的id}

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

   $authUrl = $this->provider->getAuthorizationUrl([
      'scope' => [
        'identify',
        'email',
        'guilds.join']
      ]);

使用相同的discord应用程序,我设置了一个bot。该机器人是公会的成员,并且该机器人对聊天ping做出响应(这意味着它正在工作)。bot具有创建即时邀请权限。

就在我得到不和谐的用户回来后,并且刚刚生成了访问令牌,我正试图将该用户添加到我的公会中。

我已经尝试了这与restcord库,然后直接与狂饮。

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

共有1个答案

时旭东
2023-03-14

我想出来了。

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

 类似资料:
  • Iam正在尝试向现有集合添加列。Iam使用MongoDB Iam运行以下迁移: } 当我执行“php artisan migrate”时,得到的响应很好: 然后,当我去“robomongo 3t studio”验证新专栏是否已创建时,我看不到它 我错过了什么吗。我对mongodb和laravel是新来的,对我来说太赤裸了。

  • 我在使用Discord。js创建一个基本的Discord机器人。当bot第一次启动时,我运行获取机器人当前订阅的所有协会的列表。我将其保存到其他程序使用的数据库中。 然而,当人们从他们的公会中添加/删除机器人时,我想保留一个更新的公会列表。我意识到我可以每分钟重新运行,但这似乎效率低下。 当你的机器人被添加到公会和/或频道时,是否有触发的事件?据我所知,事件似乎针对所有已经订阅该公会的用户/机器人

  • 我正在尝试添加一个表单内的多种颜色的选项。问题是,即使在添加了一个在第一个颜色字段下面添加一个新字段的按钮之后,后续字段也不会保存在jQuery调用和PHP控制器上的dd()中。 供参考 以下是点击submit后我得到的信息。

  • 这是一个关于PHP单元测试的问题,给出了一个类NotFound错误。 背景资料 我正在使用Zend Studio 10.5开发Zend Framework 2应用程序。我加载了一些模块,包括和 FedcoUser是具有使用BJYAAuthorize的保护规则的控制器保护的模块: 使用Zend Studio 10.5本机菜单,我为上面的控制器创建了一个测试用例。当我运行它时,我得到以下错误: 我的假

  • 我有一个5列的表查看器。在第一列中,我检查了一些条件并添加了一个图像,其余的列将有文本,但当我尝试添加图像,然后用文本添加其余的列时,第二列的文本就位于第一列中的图像旁边。下面是我的示例代码片段: 问题是字符串“street”位于第一列中图像的右侧,但我希望字符串“street”位于第二列中,其余字符串位于后续列中。我做错了什么?如何从第二列添加表项?

  • 问题内容: 我使用Java 8 LocalDate和Period类来添加和删除年,月和日。为什么在某些情况下,如果将Period添加到日期并删除相同的时间,则Java 8返回另一个日期? 为什么结果是2023-01-31而不是2023-01-30 问题答案: 为什么在某些情况下,如果将Period添加到日期并删除合理的时间,则Java 8返回另一个日期? 因为这就是日历计算的原理-几个月的长度是不