2017-01-18 16 views
1

Google Apps Scriptを使用してGoogleドメインのアクティビティに関する情報を取得しています。クイックスタートプロジェクトでGoogleが提供するスクリプトでうまく動作しますが、 'docs:num_docs'、 'accounts:apps_total_licenses'、 'accounts:apps_used_licenses'のようなパラメータの値を取得しません。私はいつも「未定義」な反応を得ています。 ここにスクリプトがありますが、何が間違っているか教えてください。おかげさまで CustomerUsageReportを使用してdocs:num_docsの値を取得できません。api

function generateCustomerUsageReport() { 
    var today = new Date(); 
    var oneWeekAgo = new Date(today.getTime() - 4 * 24 * 60 * 60 * 1000); 
    var timezone = Session.getTimeZone(); 
    var date = Utilities.formatDate(oneWeekAgo, timezone, 'yyyy-MM-dd'); 

    var parameters = [ 
    'accounts:num_30day_logins', 
    'accounts:num_7day_logins', 
    'accounts:num_1day_logins', 
    'accounts:num_disabled_accounts', 
    'accounts:apps_total_licenses', 
    'accounts:apps_used_licenses', 
    'accounts:num_users_2sv_enrolled', 
    'gmail:num_emails_received', 
    'gmail:num_inbound_spam_emails', 
    'gmail:num_inbound_non_spam_emails', 
    'gmail:num_inbound_delivered_emails', 
    'gmail:num_emails_sent', 
    'gmail:num_inbound_rejected_emails', 
    'gmail:num_inbound_rerouted_emails', 
    'gplus:num_video_calls', 
    'gplus:num_video_conferences', 
    'gplus:num_video_conferences_cfm', 
    'gplus:total_video_call_minutes', 
    'docs:num_docs' 
    ]; 
    var rows = []; 
    var pageToken, page; 
    do { 
    page = AdminReports.CustomerUsageReports.get(date, { 
     parameters: parameters.join(','), 
     maxResults: 500, 
     pageToken: pageToken 
    }); 
    var reports = page.usageReports; 
    if (reports) { 
     for (var i = 0; i < reports.length; i++) { 
     var report = reports[i]; 
     var parameterValues = getParameterValues(report.parameters); 
     var row = [ 
      report.date, 
      parameterValues['accounts:num_30day_logins'], 
      parameterValues['accounts:num_7day_logins'], 
      parameterValues['accounts:num_1day_logins'], 
      parameterValues['accounts:num_disabled_accounts'], 
      parameterValues['accounts:apps_total_licenses'], 
      parameterValues['accounts:apps_used_licenses'], 
      parameterValues['accounts:num_users_2sv_enrolled'], 
      parameterValues['gmail:num_emails_received'], 
      parameterValues['gmail:num_inbound_spam_emails'], 
      parameterValues['gmail:num_inbound_non_spam_emails'], 
      parameterValues['gmail:num_inbound_delivered_emails'], 
      parameterValues['gmail:num_emails_sent'], 
      parameterValues['gmail:num_inbound_rejected_emails'], 
      parameterValues['gmail:num_inbound_rerouted_emails'], 
      parameterValues['gplus:num_video_calls'], 
      parameterValues['gplus:num_video_conferences'], 
      parameterValues['gplus:num_video_conferences_cfm'], 
      parameterValues['gplus:total_video_call_minutes'], 
      parameterValues['docs:num_docs'] 
     ]; 
     rows.push(row); 
     } 
    } 
    pageToken = page.nextPageToken; 
    } while (pageToken); 

    if (rows.length > 0) { 
    //var spreadsheet = SpreadsheetApp.create('Xavier - Google Apps Customer Usage Report'); 
    var spreadsheet = SpreadsheetApp.openById('1T_eAl0DSLiG2H3l-LkbdFSoyF9gvB4hUfPWLKFJsGb0'); 
    var sheet = spreadsheet.getSheetByName('data'); 

    // Append the headers. 
    var headers = ['Date', 
        'num_30day_logins', 
        'num_7day_logins', 
        'num_1day_logins', 
        'num_disabled_accounts', 
        'apps_total_licenses', 
        'apps_used_licenses', 
        'num_users_2sv_enrolled', 
        'num_emails_received', 
        'num_inbound_spam_emails', 
        'num_inbound_non_spam_emails', 
        'num_inbound_delivered_emails', 
        'num_emails_sent', 
        'num_inbound_rejected_emails', 
        'num_inbound_rerouted_emails', 
        'num_video_calls', 
        'num_video_conferences', 
        'num_video_conferences_cfm', 
        'total_video_call_minutes', 
        'num_docs' 
        ]; 
    //sheet.appendRow(headers); 

    // Append the results. 
    sheet.getRange(sheet.getLastRow() + 1, 1, rows.length, parameters.length + 1).setValues(rows); 


    Logger.log('Report spreadsheet created: %s', spreadsheet.getUrl()); 
    } else { 
    Logger.log('No results returned.'); 
    } 
} 

/** 
* Gets a map of parameter names to values from an array of parameter objects. 
* @param {Array} parameters An array of parameter objects. 
* @return {Object} A map from parameter names to their values. 
*/ 
function getParameterValues(parameters) { 
    return parameters.reduce(function(result, parameter) { 
    var name = parameter.name; 
    var value; 
    if (parameter.intValue !== undefined) { 
     value = parameter.intValue; 
    } else if (parameter.stringValue !== undefined) { 
     value = parameter.stringValue; 
    } else if (parameter.datetimeValue !== undefined) { 
     value = new Date(parameter.datetimeValue); 
    } else if (parameter.boolValue !== undefined) { 
     value = parameter.boolValue; 
    } 
    result[name] = value; 
    return result; 
    }, {}); 
} 

答えて

0

問題が見つかりました。私のスクリプトは2017-01-03と2017-01-05で動作していますが、2017-01-02、2017-01-04、および2017-01-06では動作していないため、このデータは毎日使用できません。

関連する問題