ページスピードインサイトで複数サイトを自動でスコアを算出させたいです。
イメージとしては、スプレッドシートのトリガーとなるボタンをクリックしたらスプレッドシートに事前に明記したURLをスコアを集計するイメージです。
function pageSpeed(vStrategy, vResultOutputCol) { var APIkey = 'Google API Console APIキー'; //シートを扱う準備 var myActiveSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); var myActiveSheet = myActiveSpreadSheet.getSheetByName('speed');//計測結果を出力するシート名 var cStartRow = 3;//計測対象url一覧の開始行 var cUrlCol = 3;//計測対象url一覧の列 var locale = locale || 'ja_JP'; // default is 'en' var i = cStartRow; while(true){ var url = myActiveSheet.getRange(i,cUrlCol).getValue();//URLを取得 if(url.indexOf('http') == -1){//対象文字列が含まれていない場合 if(url === ''){//文字列が空の場合 break;//ループ終了 }else{ i = i + 1; continue;//次のループ } } var url = 'https://www.googleapis.com/pagespeedonline/v1/runPagespeed?url=' + url + '&key=' + APIkey + '&local=' + locale + '&strategy=' + vStrategy; try { var response = UrlFetchApp.fetch(url, {muteHttpExceptions: true }); } catch (err) { Logger.log(err); return(err); } var parsedResult = Utilities.jsonParse(response.getContentText()); Logger.log(parsedResult.score);//一応ログを残す myActiveSheet.getRange(i,vResultOutputCol).setValue(parsedResult.score);//書き込み i = i + 1; } } function pageSpeed_PC(){ pageSpeed('desktop', 4); } function pageSpeed_SP(){ pageSpeed('mobile', 5); }
こちらを実行すると、、以下のようなエラーが表示され、
Exception: Invalid JSON string.
pageSpeed @ コード.gs:37
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/25 00:23
退会済みユーザー
2021/06/25 07:35
2021/06/25 09:08
退会済みユーザー
2021/06/25 09:34 編集
2021/06/25 09:51
退会済みユーザー
2021/06/25 10:23 編集
2021/06/25 13:23