Battle.net API无法找回哇字符-范围不足

时间:2019-01-12 13:20:01

标签: php json curl oauth-2.0 battlenet-api

我正在尝试转到使用OAuth2的新的战网开发人员门户。我已经成功取回了客户端令牌和访问令牌,它们可以正常工作并返回我的Battle.net标签和ID号。

完成此操作后,我将尝试调用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;

}

这是我用来获取客户ID调用并指定范围的代码。

现在的问题是当我尝试使用下面的代码进行客户端调用之前,使用收到的应用程序令牌进行调用

$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接受了返回数据的范围,但他们的新文档未指定(我可以看到)范围的列表或范围。

0 个答案:

没有答案