waNet. Получение токена для waAPI Есть решение

0

Есть код:

        $url = $uri . '/token?' . http_build_query(['redirect_uri' => $redirect_uri]);
        $params = [
            'code' => $code,
            'client_id' => $client_id,
            'grant_type' => 'authorization_code'
        ];

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
        $response_curl = json_decode(curl_exec($ch), true);

        $socket = new waNet(['format' => waNet::FORMAT_JSON]);
        $response_wanet = $socket->query($url, $params, waNet::METHOD_POST);

        waLog::dump(compact('response_curl', 'response_wanet'));

Результат в логе:

[
  'response_curl' => [
    'access_token' => 'a8bdc8109e30e73701512f9f32fc86e6',
  ],
  'response_wanet' => [
    'error' => 'invalid_request',
    'error_description' => 'Required parameter is missing: code',
  ],
]

Параметры запроса составлены в соответствии с п.3 раздела 1 - Серверные приложения соответствующей статьи

От себя добавлю: в данном случае параметр redirect_uri лишний. Но и на разницу результатов никак не влияет.

1 комментарий

  • 0
    waResearchLab waResearchLab 1 декабря 2022 14:11 #

    Надо было добавить `request_format`, тогда всё норм

    $socket = new waNet(['format' => waNet::FORMAT_JSON, 'request_format' => waNet::FORMAT_RAW]);

    Добавить комментарий

    Чтобы добавить комментарий, зарегистрируйтесь или войдите