Войдите в систему с OAUTH2 для Discord, затем присоединитесь к гильдии - PullRequest
1 голос
/ 10 марта 2020

Джо!

Я пытаюсь войти в систему пользователя с Discord, а затем пригласить его в мою гильдию. Часть входа работает отлично, просто не знаю, почему не работает гильдия присоединения.

Код ниже

function apiRequest($url, $post=FALSE, $headers=array()) {
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

  $response = curl_exec($ch);


  if($post)
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));

  $headers[] = 'Accept: application/json';

  if(session('access_token'))
    $headers[] = 'Authorization: Bearer ' . session('access_token');

  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

  $response = curl_exec($ch);
  return json_decode($response);
}


$token = apiRequest($tokenURL, array(
    "grant_type" => "authorization_code",
    'client_id' => OAUTH2_CLIENT_ID,
    'client_secret' => OAUTH2_CLIENT_SECRET,
    'redirect_uri' => REDIRECT_URI,
    'code' => get('code')
  ));
  $_SESSION['access_token'] = $token->access_token;

  $user = apiRequest($apiURLBase);


        $ch = curl_init("https://discordapp.com/api/guilds/".$GUILD_ID."/members/".$user->id);
        curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_PUT, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array("access_token" => $token->access_token)));
        $headers[] = 'Content-Type: application/json';
        $headers[] = 'Authorization: Bot' . $tokenBOT;
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        $response = curl_exec($ch);
        echo curl_getinfo($ch, CURLINFO_HTTP_CODE);

Он входит в систему, устанавливает сеанс, но пользователь не присоединяется. Есть идеи?

...