запрос ключа доступа от жрета для oauth2 в laravel5.8 - PullRequest
0 голосов
/ 31 мая 2019

Я хочу получить токен доступа от mailchimp oauth2, но при каждой попытке я терпел неудачу. Здесь я использовал жрет, и мой фактический запрос

curl - запрос POST \ --url 'https://login.mailchimp.com/oauth2/token' \ --data "grant_type = код авторизации & client_id = {client_id} & client_secret = {client_secret} & redirect_uri = {encoded_url} & code = {code}" \ --include

я уже пробовал curl и javascript, но mailchimp не принимает запрос javascript это код, который я использовал:

$http = new Client(['base_uri' => 'https://login.mailchimp.com/oauth2', 
 'defaults' => [
                'exceptions' => false ],
    'header' => [
        'Accept' => 'application/json',
        'Content-Type' => 'application/x-www-form-urlencoded'
    ],
    'verify' => false
    ]);
    $result = $http->request('POST','/token', [
    'form_params' => [
        'grant_type' => 'authorization_code',
        'client_id' => $this->client_id,
        'client_secret' => $this->client_secret,
        'redirect_uri' => $this->redirect_uri,
        'code' => $code,
        ],
    ]);
    $response = $result->send();
    $responseBody = $response->getBody(true);
    var_dump($responseBody);
    die();

ожидаемый фактический результат: "Access_token": "5c6ccc561059aa386da9d112215bae55", "expires_in": 0, "Объем": нулевая но моя ошибка Ошибка клиента: POST https://login.mailchimp.com/token привело к ответу 404 Not Found:

1 Ответ

0 голосов
/ 31 мая 2019

В связи с тем, как работает Guzzle, вы используете абсолютный URI.

Сначала вы установите base_uri:

$http = new Client(['base_uri' => 'https://login.mailchimp.com/oauth2']);

Затем сделайте запрос:

$http->request('POST', '/token')

Поскольку вы добавили начальную косую черту, Guzzle будет считать, что у нее абсолютный URI, и нажмет https://login.mailchimp.com/token, как и прежде.Я предполагаю, что желаемая конечная точка для попадания - https://login.mailchimp.com/oauth2/token

Это можно исправить, добавив косую черту к base_uri и удалив начальную косую черту при выполнении запроса.

Информация издокументы: http://docs.guzzlephp.org/en/stable/quickstart.html#creating-a-client

следует RFC3986

...