私はガスを使用してPingdomのからのAPIデータを抽出しているが、私は抽出することができたデータのみでした。..抽出PingdomののAPIデータ
TestID | TestName | ResponseTime | Status
1299405 Google 243 up
1299434 Yahoo 342 up
1299499 Bling 299 up
このスクリプトを使用して..
function pingdom() {
var headers =
{
"Accept": "application/json",
"Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"App-Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Account-Email": "xxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
var options =
{
"headers" : headers,
"method" : "get"
}
var response = UrlFetchApp.fetch("https://api.pingdom.com/api/2.0/checks", options);
var response_json = JSON.parse(response.getContentText());
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet1");
var rows = [], data;
for (i = 0; i < response_json.checks["length"]; i++) {
data = response_json.checks[i];
rows.push([data.id, data.name, data.lastresponsetime, data.status]);
}
//Set column headings
var colHeaders = [[ "Test ID", "Test Name", "Response Time", "Status"]];
dataRange = sheet.getRange(1, 1, 1, 4);
dataRange.setValues(colHeaders) ;
//Display data
dataRange = sheet.getRange(2, 1, rows.length, 4);
dataRange.setValues(rows);
}
は、今私は、「平均応答時間&稼働時間」残念ながらPingdomのAPIは、単一のテストIDのデータを抽出するために私を可能にするようないくつかのより多くのデータを抽出しようとしています(テストIDは、APIのURLで指定されるhttps://api.pingdom.com/api/2.0/summary.performance/1299405?includeuptime=true)
このGoogleのスクリプトを使用して...私は、シート1に、すべてのテストIDの存在の「平均応答時間&稼働時間」を取得するよう
function uptime() {
var headers =
{
"Accept": "application/json",
"Authorization": "Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"App-Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Account-Email": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}
var options =
{
"headers" : headers,
"method" : "get"
}
var rows = [] , sum = {};
var response = UrlFetchApp.fetch("https://api.pingdom.com/api/2.0/summary.performance/1299405?includeuptime=true", options);
var response_json = JSON.parse(response.getContentText());
//var sum = response_json.summary.states;
for (i = 0; i < response_json.summary.hours.length; i++)
{
sum = response_json.summary.hours[i] ;
rows.push([sum["avgresponse"],sum["uptime"]]);
break;
}
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Sheet2");
dataRange = sheet.getRange(1, 1, 1, 2);
//Set column headings
var colHeaders = [[ "avg","uptime"]];
dataRange.setValues(colHeaders) ;
//Display data
dataRange = sheet.getRange(2, 1, rows.length, 2);
dataRange.setValues(rows);
}
は私がシート1からのテストIDを拾ってループを作成してみました。
data_id = response_json.checks[i];
//for (i = response_json.checks.id; i++){
var response1 = UrlFetchApp.fetch("https://api.pingdom.com/api/2.0/summary.performance/" + data_id.id, options);
しかし残念ながら、私はすべてのデータを取得することはできませんよ。誰かが私にこれを達成するのを手伝ってもらえると本当に役に立ちます。
(ここではPingdomのAPIのドキュメントである - https://www.pingdom.com/resources/api)は