使用javascript和Google api v3在另一个文件夹中创建文件夹快捷方式
我正在尝试使用javascript和google api v3在我的驱动器的另一个文件夹中创建一个文件夹的快捷方式,google提供的代码是这样的,但它不起作用……事实上,我甚至不理解它。有人能帮我吗使用javascript和Google api v3在另一个文件夹中创建文件夹快捷方式,javascript,api,shortcut,drive,Javascript,Api,Shortcut,Drive,我正在尝试使用javascript和google api v3在我的驱动器的另一个文件夹中创建一个文件夹的快捷方式,google提供的代码是这样的,但它不起作用……事实上,我甚至不理解它。有人能帮我吗 var fileMetadata = { 'name': 'Project Plan', 'mimeType': 'text/plain' }; drive.files.create({ 'resource': fileMetadata, 'fields': 'id' }, fun
var fileMetadata = {
'name': 'Project Plan',
'mimeType': 'text/plain'
};
drive.files.create({
'resource': fileMetadata,
'fields': 'id'
}, function (err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('File Id: ' + file.id);
shortcutMetadata = {
'name': 'Shortcut to Project Plan',
'mimeType': 'application/vnd.google-apps.shortcut'
'shortcutDetails': {
'targetId': file.id
}
};
drive.files.create({
'resource': shortcutMetadata,
'fields': 'id,name,mimeType,shortcutDetails'
}, function(err, shortcut) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('Shortcut Id: ' + shortcut.id +
', Name: ' + shortcut.name +
', target Id: ' + shortcut.shortcutDetails.targetId +
', target MIME type: ' + shortcut.shortcutDetails.targetMimeType);
}
}
}
});
创建文件夹结构的迭代过程示例:
function crearIterativo(original,destino){
//listo las carpetas que tengo en el original
gapi.client.drive.files.list({
'pageSize': 300,
'q': "mimeType = 'application/vnd.google-apps.folder' and trashed = false and '"+original+"' in parents ",
'fields': "nextPageToken, files(id, name, parents)"
}).then(function(response) {
var files = response.result.files;
if (files && files.length > 0) {
for (var i = 0; i < files.length; i++) { //Para cada carpeta encontrada, la creo en destino:
var file = files[i];
//informo
appendPre(file.name + ' (' + file.id + ')' + ' ['+file.parents +']');
arrayFoldOrig[file.name]=file.id;
//creo carpeta
var fileMetadata = {
'name' : file.name,
'mimeType' : 'application/vnd.google-apps.folder',
'parents': [destino]
};
gapi.client.drive.files.create({
resource: fileMetadata,
}).then(function(respons) {
switch(respons.status){
case 200://si va bien, entonces crea estructura
var file2 = respons.result;
console.log('Created Folder Id: ', file2.id);
console.log('Llamo iterativo: ', file2.id);
crearIterativo(arrayFoldOrig[file2.name],file2.id);
break;
default:
console.log('Error creating the folder, '+response);
break;
}
});
//
}
} else {
//appendPre('No files found.');
}
});
}
函数crearIterativo(原始,目的地){
//原厂地毯
gapi.client.drive.files.list({
“页面大小”:300,
'q':“mimeType='application/vnd.google apps.folder'和trashed=false,以及父级中的“+original+”,
“字段”:“下一个GetOken,文件(id、名称、父项)”
}).然后(功能(响应){
var files=response.result.files;
如果(files&&files.length>0){
对于(var i=0;i
我相信你的目标如下
- 您希望使用Javascript创建快捷方式
- 您已经完成了使用驱动器API创建文件的授权过程
- 您想知道如何创建用于创建快捷方式的元数据
- 在脚本中,您希望使用
gapi.client.drive.files.create创建快捷方式
- 请使用
作为mimeTypeapplication/vnd.google apps.shortcut
- 请将目标文件ID或文件夹ID设置为
。例如,如果要创建文件夹A的快捷方式,请将文件夹A的文件夹ID设置为targetId
targetId
- 在上述情况下,将创建文件夹ID为
的文件夹的快捷方式destino
的细节吗?它不起作用…实际上是?2.在脚本中,drive.files.create的drive
可用于创建快捷方式?也就是说,您的授权脚本已经可以使用了吗?3.我可以问一下你剧本的语言吗?它是Javascript还是Node.js?也许我应该首先回答最后一个问题:我正在使用Javascript,提供的代码是针对Node.js的,所以我进行了调整,但仍然不起作用,它不会创建快捷方式,也不会记录错误。关于许可证,是的,我正在很好地复制文件夹并创建新文件夹。但是我的主要问题是我不理解代码,而且几乎没有关于它的信息,所以我无法跟踪错误。谢谢你的回复。我想确认你的问题,以便正确理解它。在你的问题中,1。您希望将Node.js的脚本转换为Javascript。2.您已经完成了授权将API与Javascript一起使用的范围的脚本。我的理解正确吗?正确,我在我的帖子中添加了一个例子,说明我使用API通过迭代过程复制文件夹结构的方法。这比创建快捷方式要复杂得多,而且效果很好!。总之,我需要知道如何正确设置快捷方式的元数据…感谢您的回复。从你的回答中,我提出了修改点作为答案。你能确认一下吗?如果我误解了你的问题,而这不是你期望的方向,我道歉。@Fernando De Palma Madrid欢迎你。谢谢你让我知道。我很高兴你的问题解决了。如果您的问题已解决,请按“接受”按钮。与您有相同问题的其他人也可以将您的问题作为可以解决的问题。我认为你的问题和解决方案对他们会有帮助。如果你找不到按钮,尽管告诉我。我想我已经做了(点击你答案旁边的ok按钮?)其他情况请告诉我。再一次,非常感谢。对不起,我的回答太慢了,但我不得不暂时放弃我的项目,我尽快回来了。祝你好运@马德里费尔南多·德·帕尔马感谢您的回复!
var fileMetadata = {
'name' : file.name,
'mimeType' : 'application/vnd.google-apps.folder',
'parents': [destino]
};
const targetId = "###"; // Please set the target file ID or folder ID.
var fileMetadata = {
'name': file.name,
'mimeType': 'application/vnd.google-apps.shortcut', // Modified
'parents': [destino],
'shortcutDetails': {'targetId': targetId}, // Added
};