我在Google Apps脚本中编写了一个简短的函数,该函数可以复制存储在Google云端硬盘中的特定文件。这样做的目的是,该文件是一个模板,每当我要创建一个新的工作文档时,我都会复制该模板,并只是更改文档的标题。我编写的用于复制文件并将其存储在所需的特定文件夹中的代码非常简单:
function copyFile() {
var file = DriveApp.getFileById("############################################");
var folder = DriveApp.getFolderById("############################");
var filename = "Copy of Template";
file.makeCopy(filename, folder);
}
Run Code Online (Sandbox Code Playgroud)
此功能获取基于ID的特定文件和基于ID的特定文件夹,并将标题为“模板副本”的副本放入该文件夹。
我一直在搜寻,似乎找不到。有办法做到完全相同的事情,但是要使用Python吗?或者,至少有一种方法可以让Python以某种方式调用该函数来运行该函数?我需要在Python中完成此操作,因为每当我开始工作的新项目时(例如从Google云端硬盘中的模板创建新文档以及与之无关的其他事情),我都会编写一个脚本,该脚本可以一次执行许多功能根本没有Google云端硬盘,因此无法在Google Apps脚本中完成。
是否可以指定Google电子表格每次修改时不重新计算特定工作表或单元格数?我有一张非常厚的纸张,每次我做一个微小的修改都很慢,即使它在另一张纸上.
我得到以下内容
{
"error" : "invalid_grant"
}
at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:103)
at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:303)
at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:130)
Run Code Online (Sandbox Code Playgroud)
这只发生在我的生产Appengine实例中(即不在开发服务器上),它只发生在我用于开发和生产测试的电子邮件地址上.
我的工作假设是,它与在dev服务器上被授予刷新令牌的用户有关,这会以某种方式干扰prod服务器上存储的刷新令牌.
任何人都可以确认这个解释,并且有关于如何处理此异常的最佳实践吗?
我正在迭代一个数组,并为每个元素做一些调用回调的东西.我的问题是在回调中,我需要知道迭代的哪个传递.
简化,我的代码看起来像这样......
for (var i=0; i<3; i++ {
setTimeout(function () {
console.log(i);
},1000);
}
Run Code Online (Sandbox Code Playgroud)
我想要看到
0
1
2
Run Code Online (Sandbox Code Playgroud)
我得到的是
3
3
3
Run Code Online (Sandbox Code Playgroud)
我理解为什么我得到3分,但看不出如何获得0,1,2
NB.这是我的问题的简化版本.在myapp中,我实际上是在调用存储操作,所以我不能简单地将"i"作为回调函数的参数.
我想安排一个任务(即一个代码块)在稍后执行,其中执行的时间和日期以及其他参数作为任务有效负载传入.
所以我们有一个基于Python(Django)的Appengine应用程序,其中:
任务在tasks.py中定义
@csrf_exempt
def task_myfunction(request):
if request.method == 'POST':
# Read POST parameters
# Perform task
return HttpResponse("Success")
Run Code Online (Sandbox Code Playgroud)
Payload被添加到views.py中的队列中,并且有效负载被POST到提供的URL,该URL映射到上面定义的函数.
from google.appengine.api import taskqueue
# ..Somewhere inside a view..
taskqueue.add(queue_name='myqueue', url='/task/myfunction', params={
# Specify parameters
})
Run Code Online (Sandbox Code Playgroud)
有没有办法,我可以指定执行的准确时间(带有时区)以及有效负载数据,以便从队列中自动获取任务并在该时刻执行.