我有一张简单的Google工作表,定期更新数据(比如每周,前一周的数据会被删除);我已将此工作表声明为bigquery中的表,并在app脚本中编写了一个脚本,该脚本获取数据并将其附加到具有相同结构的静态表(基本上存档);
手动这是有效的,但是这永远不会通过应用程序脚本(使用触发器)工作;我在互联网上阅读,它需要o-auth和范围,但我所有的谷歌表,bigquery凭据都属于我。任何人都可以帮我在我的应用程序脚本中编写scope / o-auth吗?
function saveQueryToTable() {
var projectNumber = 'XXXX';
var projectId = 'XXXX';
var datasetId = 'YYYY';
var tableId = 'archives';
var job = {
configuration: {
query: {
"allowLargeResults": true,
query:'SELECT * FROM YYYY.temp_table_connected_to_a_google_sheet',
destinationTable: {
projectId: projectId,
datasetId: datasetId,
tableId: tableId
},
'writeDisposition':'WRITE_APPEND',
'maximumBillingTier': '5'
}
}
};
var queryResults = BigQuery.Jobs.insert(job, projectId);
Logger.log(queryResults.status);
}
尝试在脚本中声明范围: -
// scope = https://www.googleapis.com/auth/bigquery; //范围= https://www.googleapis.com/auth/drive&#39 ;;
//返回OAuth2.createService(' drive') 等
答案 0 :(得分:1)
在运行代码之前,您需要拨打Google Drive API进行初始化。例如:
//just a random call to activate the Drive API scope
var test = Drive.Properties.list('....a folderid of a Drive folder you have access to....')
有关详细信息,请参阅此issue tracker