Eve Online ESI Curl Авторизация - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь использовать новый интерфейс Eve ESI, но при попытке аутентификации получаю следующее сообщение об ошибке:

HTTP/1.1 401 Unauthorized
Cache-Control: private
Server: Microsoft-IIS/8.5
Request-Context: appId=cid-v1:2ccf88f2-29b9-460a-bc15-7c0b79926f61
Date: Tue, 01 May 2018 00:24:50 GMT
Connection: close
Content-Length: 0

Вот мой код, использующий PHP / Curl:

<?php   
    $authcode = base64_encode("{my client ID}:{My Secret Key}");
    $data = array("grant_type" => "authorization_code", "code" => "{code returned by the server}");
    $data_string = json_encode($data);
    $ch = curl_init("https://login.eveonline.com/oauth/token");
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_HEADER, array("Content-Type:application/json", "Authorization: Basic " . $authcode)); 

    $result = curl_exec($ch); 

    print_r($result);

    curl_close($ch); 
?> 

Есть идеи, что я делаю не так? Я внимательно следил за руководством пользователя.

Спасибо.

1 Ответ

0 голосов
/ 18 мая 2018

Попробуйте это:

    //Request Headers payload
    $headerData = array(
        "Authorization:Basic " . base64_encode("{my client ID}:{My Secret Key}"),
        "Content-Type:application/json", 
        'Host:login.eveonline.com'
    )

    //Request Body payload
    $bodyData = array(
        "grant_type" => "authorization_code", 
        "code" => "{code returned by the server}"
    );

    //Curl exec
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"https://login.eveonline.com/oauth/token");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headerData); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($bodyData)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    curl_close($ch); 

    //Server response json decode & display
    $result = json_decode($result, true);
    print_r($result);
...