2017-06-05 71 views
0

我無法獲得Google API PageSpeed Insights截圖,他們提供的網站在擊中API時。我看過其他例子,但似乎沒有一個適合我。谷歌頁面洞察api截圖 - Laravel

這就是我在打API時得到的結果。 Google API Endpoint

這是我的控制器:

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 = 「」

+0

你的第一個''標記看起來像它最後缺少一個''''。 – ceejayoz

+0

沒看見。我修好了它。儘管如此,它仍然是空虛的。 – David

+0

查看源代碼時是否將數據輸出到頁面?你爲什麼要替換數據中的'_'和'-'? – ceejayoz

回答

0

我想通了。

這是我做我的控制器(沒有太大的變化):

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

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

這是我如何在前端把它稱爲:

<img src="data:image/jpeg;base64,{{ $data }}">