@QWATRIX

Как решить проблему с авторизацией API Mojang?

Написал скрипт авторизации для проверки аккаунта Mojang.
$post_data = array (
    "Username" => "dacruz1599@yahoo.com",
    "Password" => "Dominicc1599",
    "ClientToken" => "7c825a05-817a-4aad-939e-02c9dd3d923a"
);

$ch = curl_init("https://authserver.ely.by/auth/authenticate");

curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);

$output = curl_exec($ch);

Но API выдаёт ошибку: {"error":"IllegalArgumentException","errorMessage":"credentials can not be null."}

Документация: https://docs.ely.by/ru/minecraft-auth.html

Надо сделать авточеккер, помогите пожалуйста.
  • Вопрос задан
  • 480 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
Если читать оригинальную доку mojang.com, то видно, что ребята из ely.by передрали её с фундаментальными ошибками:
— забыли, что параметры передавать надо в json (впрочем, application/x-www-form-urlencoded тоже работает);
— зачем-то переименовали все параметры с большой буквы.

Запрос
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://authserver.ely.by/auth/authenticate",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\n\t\"username\":\"dacruz1599@yahoo.com\",\n\t\"password\":\"Dominicc1599\",\n\t\"clientToken\":\"7c825a05-817a-4aad-939e-02c9dd3d923a\"\n}",
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json"
  ],
]);

$response = curl_exec($curl);

даёт уже иной ответ:
{
    "error": "ForbiddenOperationException",
    "errorMessage": "Invalid credentials. Invalid email or password."
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Randewoo
Так у тебя массив в массиве.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы