【发布时间】:2016-04-13 17:42:08
【问题描述】:
我们有 Google Analytics Premium。
我想删除 Google 表格/Google 脚本中的非抽样报告。
我一直在使用 Management API 获得非抽样报告:https://developers.google.com/apis-explorer/#p/analytics/v3/analytics.management.unsampledReports.get
我可以使用以下方法获取和安排非抽样报告:
GET https://www.googleapis.com/analytics/v3/management/accounts/12345/webproperties/33243423/profiles/12345/unsampledReports/?access_token=[access_token]
但是在我的一生中,我无法使用以下方法删除报告:(继续获取用户没有权限)
DELETE https://www.googleapis.com/analytics/v3/management/accounts/12345/webproperties/33243423/profiles/12345/unsampledReports/?key={YOUR_API_KEY}
或
我还可以使用以下方法对报告进行排队:
function deleteAllReports() {
var logger = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Unsampled Report Logs');
var lastRow = logger.getLastRow();
var unsampledReportsArray = logger.getRange(2, lastRow+1, 1, 1).getValues();
var request = Analytics.Management.UnsampledReports.Delete({
'accountId': '123456',
'webPropertyId': 'UA-123456-1',
'profileId': '7654321',
'unsampledReportId': '1112223334111222333411'
});
}
编辑:
我目前正在使用我的 client_id、client_secret 和 refresh_token 从 https://accounts.google.com/o/oauth2/token 获取访问令牌。
大致:
var uri = "https://accounts.google.com/o/oauth2/token";
var payload =
{
'client_id' : 'XXXXX',
'client_secret' : 'XXXXX',
'grant_type' : 'refresh_token',
'content_type' : 'application/x-www-form-urlencoded',
'refresh_token' : 'XXXXX'
};
var options =
{ "method" : "POST",
"muteHttpExceptions" : false,
"payload" : payload
};
【问题讨论】:
-
听起来您正在使用具有只读访问权限但没有写访问权限的用户进行身份验证。您不仅需要使用
analytics.edit范围进行身份验证,还需要作为对该非抽样报告具有写入权限的用户进行身份验证。 -
您还应该在问题中包含完整的错误消息:
User does not have sufficient permissions for this XXXX将有助于诊断问题。 -
如果您使用的是谷歌应用脚本,您根本不必担心访问令牌。已经有一个集成可以解决这个问题。
标签: google-apps-script google-analytics google-api google-analytics-api