Я не могу получить значения для документов:num_docs с помощью API CustomerUsageReport
Я использую Google Apps Script, чтобы получить некоторую информацию об активности в моем домене Google, и он отлично работает со сценарием, предоставленным Google в его проекте QuickStart, но я не могу получить значения для некоторых параметров, таких как 'docs: num_docs', 'accounts: apps_total_licenses 'или' account: apps_used_licenses '. Я всегда получаю "неопределенный" ответ. Вот сценарий, не могли бы вы сказать мне, что не так. Благодарю.
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;
}, {});
}
1 ответ
Я думаю, что нашел проблему. Кажется, что эти данные не доступны каждый день, потому что мой скрипт работает на 2017-01-03 и 2017-01-05, но не на 2017-01-02, 2017-01-04 и 2017-01-06.