Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript和Google api v3在另一个文件夹中创建文件夹快捷方式_Javascript_Api_Shortcut_Drive - Fatal编程技术网

使用javascript和Google api v3在另一个文件夹中创建文件夹快捷方式

使用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

我正在尝试使用javascript和google api v3在我的驱动器的另一个文件夹中创建一个文件夹的快捷方式,google提供的代码是这样的,但它不起作用……事实上,我甚至不理解它。有人能帮我吗

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创建快捷方式
对于这个问题,这个答案如何

修改脚本: 请按如下方式修改您的脚本

发件人: 致:
  • 请使用
    application/vnd.google apps.shortcut
    作为mimeType
  • 请将目标文件ID或文件夹ID设置为
    targetId
    。例如,如果要创建文件夹A的快捷方式,请将文件夹A的文件夹ID设置为
    targetId
  • 在上述情况下,将创建文件夹ID为
    destino
    的文件夹的快捷方式
参考资料:

我可以问一下您的问题吗?1.我可以问一下
的细节吗?它不起作用…实际上是
?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
};