Я пытаюсь перейти на новый портал разработчиков Battle Network, использующий OAuth2. Я успешно вернул и клиентский токен, и токен доступа, который отлично работает и возвращает мой тег Battle.net и идентификационный номер.
Как только это будет сделано, я пытаюсь вызвать API для получения полного списка символов, который затем можно зациклить в базе данных для кэширования.
$fields = array(
'code' => $code,
'scope' => 'wow.profile',
'redirect_uri' => $redirectUri,
'grant_type' => 'client_credentials',
);
$clientToken = getClientToken($fields, $url, $clientId, $clientSecret);
function getClientToken($fields, $url, $clientId, $clientSecret){
//initiate curl
$ch = curl_init();
//set curl parameters and options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERPWD, "$clientId:$clientSecret");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
//execute curl
$result = curl_exec($ch);
//decode the json returned from b.net to get application token
$result = json_decode($result);
//close curl connection
curl_close($ch);
$clientToken = $result->access_token;
$_SESSION['user']['userToken'] = $clientToken;
return $clientToken;
}
Это код, который я использую, чтобы получить вызов для идентификатора клиента и указать область действия.
проблема сейчас в том, когда я пытаюсь позвонить с маркером приложения, который был получен до того, как я сделал клиентский вызов, используя код ниже
$charactersJson = file_get_contents('https://eu.api.blizzard.com/wow/user/characters?access_token='.$applicationToken);
Я получаю следующую ошибку:
<oauth>
<error_description>Insufficient scope for this resource</error_description>
<error>insufficient_scope</error>
</oauth>
У кого-нибудь есть идеи, что я могу делать неправильно? Старый API Blizzards принял эту область для возврата данных, но в новой документации не указан (что я вижу) список или диапазон областей.
Задача ещё не решена.
Других решений пока нет …