Скриншот API Google Insights для страницы Google - Laravel

У меня проблемы с получением скриншота Google API PageSpeed ​​Insights, который они предоставляют на веб-сайте при попадании в API. Я посмотрел на другие примеры, но ни один из них не работает для меня.

Это то, что я получаю, когда нажимаю на API. Конечная точка API Google

И это мой контроллер:

   public function fetch() {

        $key = env('GOOGLE_ANALYTICS_KEY');
        $website = request('website_url');

        $client = new \GuzzleHttp\Client();

        $res = $client->request('GET', 'https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=http://' .$website. '&key=' . $key . '&screenshot=true');

        if ($res->getStatusCode() == 200) {
            $result = json_decode($res->getBody());

            $data    = str_replace('_','/',$result->screenshot->data);
            $data    = str_replace('-','+',$data);
            $decoded = base64_decode($data);

            return view('api.index', compact('result', 'decoded'));

        } else {
            return redirect()->back();
        }
    }

Я пытаюсь назвать это в переднем конце так:

<img src="data:image/jpeg;base64,'{{ $decoded }}">
// And like this
<img src="{{ $decoded }}">

Но просто получите пустой src=""

1 ответ

Решение

Я понял.

Вот что я сделал в своем контроллере (не сильно меняя):

$result = json_decode($res->getBody());

            $data    = str_replace('_','/',$result->screenshot->data);
            $data    = str_replace('-','+',$data);

Вот как я назвал это в front-end:

 <img src="data:image/jpeg;base64,{{ $data }}">
Другие вопросы по тегам