Не могу понять, почему мой ответ не авторизован, даже если я слежу за битвой. Документация net - PullRequest
1 голос
/ 03 апреля 2020

Итак, я создаю простой проект, в котором я пытаюсь запустить Battle. net API и получить токен.

Я уже создал клиента на их платформе и получил секрет и пароль.

Когда я пытаюсь сделать запрос со сборкой в ​​фасаде Http, включенной в Laravel 7, я получаю несанкционированный доступ, несмотря ни на что.

Я использую их документацию, чтобы ударить цель предоставления клиента: https://develop.battle.net/documentation/guides/using-oauth

Я пытался использовать его с теми же заголовками и содержимым в Insomnia, и внутри этого программного обеспечения это работает.

Код Я использую следующее:

public function index()
{
    $key = env('BATTLE.NET_KEY');
    $secret = env('BATTLE.NET_SECRET');

    $response = Http::withHeaders([
            'Authorization' => "Basic {$key}{$secret}",
            'Content-Type' => 'multipart/form-data',
        ])->post('http://eu.battle.net/oauth/token', ['grant_type' => 'client_credentials']);

    return dd($response);
}

Что я делаю не так? Я, должно быть, упускаю что-то важное. Это должно быть просто. Я пытался обернуть его в ассоциативный массив, начинающийся с [form_params =>], но это тоже не сработало. Также пробовал другие типы контента, чтобы увидеть, работает ли это, но безрезультатно.

1 Ответ

0 голосов
/ 03 апреля 2020

Похоже, вы перепутали ключ и секрет.

$key = env('BATTLE.NET_SECRET'); // should be key
$secret = env('BATTLE.NET_KEY'); // should be secret

Я думаю, что конструкция заголовка авторизации отключена, у guzzle есть опция, попробуйте с этим.

Http::withOptions([
    'auth' => [
        $key,
        $secret,
    ]
])->withHeaders([
        'Content-Type' => 'multipart/form-data',
    ])->post('http://eu.battle.net/oauth/token', ['grant_type' => 'client_credentials']);
...