如何将Google云端硬盘文件夹添加到“我的云端硬盘”部分给其他用户 [英] How to add a Google Drive folder to "My Drive" section to other users

查看:218
本文介绍了如何将Google云端硬盘文件夹添加到“我的云端硬盘”部分给其他用户的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我拥有Google云端硬盘herarchichal文件夹和子文件夹结构,并且希望自动将其添加到Google Apps for Business域中所有用户的我的云端硬盘部分。



我该怎么做?我听说过Google Apps脚本和AddToFolder功能。
请帮助我吗?

预先致谢。

解决方案 div>

现在我已经使用Google文档列表API实现了此功能。我知道这个API已被弃用,但现在它可以工作。



(代码未完成)

(...)

// var user = Session.getActiveUser()。getUserLoginId()或
var user = e.parameter.user_email

var TB_folder = e.parameter.TB_folder
var TB_sub_folder = e.parameter.TB_sub_folder


var base ='https://docs.google的.com /馈送/';
var fetchArgs = googleOAuth _('docs',base);

fetchArgs.method ='POST';

var rawXml =<?xml version ='1.0'encoding ='UTF-8'?> +< entry xmlns ='http://www.w3.org/2005/Atom'>
+< category scheme ='http://schemas.google.com/g/2005#kind'
+term ='http://schemas.google.com/docs/ 2007#文件夹/>中
+< title> + TB_folder +< / title>
+< / entry>;

fetchArgs.payload = rawXml;
fetchArgs.contentType ='application / atom + xml';
fetchArgs.contentLength = 245;

//发布https://docs.google.com/feeds/default/private/full

var url = base + user +'/ private / full / ?v = 3及ALT = JSON';
var content = UrlFetchApp.fetch(url,fetchArgs).getContentText()
var json = Utilities.jsonParse(content)


var folder = json.entry .gd $ resourceId。$ t // - >我得到folder:folder_id
var id_folder = folder.split(':')[1]

var folder_created_by = json.entry.gd $ lastModifiedBy.email。$ t
var folder_owner = json.entry.author ['0']。email。$ t

( ...)



现在,您拥有文件夹ID并可以使用它创建另一个子文件夹或文件...

您需要此功能:

  // Google oAuth 
函数googleOAuth_(name,scope){
var oAuthConfig = UrlFetchApp.addOAuthService(name);
oAuthConfig.setRequestTokenUrl(https://www.google.com/accounts/OAuthGetRequestToken?scope=+范围);
oAuthConfig.setAuthorizationUrl(https://www.google.com/accounts/OAuthAuthorizeToken);
oAuthConfig.setAccessTokenUrl(https://www.google.com/accounts/OAuthGetAccessToken);

oAuthConfig.setConsumerKey(XXXXXXXX);
oAuthConfig.setConsumerSecret(XXXXXXXXXXXXXXXXXXX);

//oAuthConfig.setConsumerKey(\"anonymous);
//oAuthConfig.setConsumerSecret(anonymous);

return {oAuthServiceName:name,oAuthUseToken:always};
}






您可以创建一个文件或者将用户添加到文件(添加一个)。



现在我想用Drive API实现这个功能。如果有人已经这样做了,可以得到一些帮助。



Sergi


I have a Google Drive herarchichal folder and subfolders structure owned by me and I want to add it to the "My Drive" section in all users in our Google Apps for Business domain automatically.

How can I do this? I heard about Google Apps Script and AddToFolder function. Please, can you help me?

Thanks in advance.

解决方案

Right now I've implemented this feature using "Google Documents List API". I know that this API is deprecated but for now it works.

(the code is not finished)

  (...)

  //var user = Session.getActiveUser().getUserLoginId()  OR
  var user = e.parameter.user_email 

  var TB_folder = e.parameter.TB_folder 
  var TB_sub_folder = e.parameter.TB_sub_folder 


  var base = 'https://docs.google.com/feeds/';
  var fetchArgs = googleOAuth_('docs', base);

  fetchArgs.method = 'POST';

  var rawXml =  "<?xml version='1.0' encoding='UTF-8'?>" + "<entry xmlns='http://www.w3.org/2005/Atom'>"
         +  "<category scheme='http://schemas.google.com/g/2005#kind' "
         +  "term='http://schemas.google.com/docs/2007#folder'/>"
         +  "<title>" + TB_folder +"</title>"
         +  "</entry>";

  fetchArgs.payload = rawXml;
  fetchArgs.contentType = 'application/atom+xml';
  fetchArgs.contentLength = 245;

 // POST a https://docs.google.com/feeds/default/private/full

 var url = base + user + '/private/full/?v=3&alt=json';
 var content = UrlFetchApp.fetch(url, fetchArgs).getContentText()
 var json = Utilities.jsonParse(content)


 var folder = json.entry.gd$resourceId.$t // -> I get "folder:folder_id"
 var id_folder = folder.split(':')[1]

 var folder_created_by = json.entry.gd$lastModifiedBy.email.$t
 var folder_owner      = json.entry.author['0'].email.$t

(...)

Now, you have the folder ID and can use it to create another subfolder or a file...

You need this function :

  //Google oAuth
  function googleOAuth_(name,scope) {
    var oAuthConfig = UrlFetchApp.addOAuthService(name);
    oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
    oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
    oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");

    oAuthConfig.setConsumerKey("XXXXXXXX");
    oAuthConfig.setConsumerSecret("XXXXXXXXXXXXXXXXXXX");

    //oAuthConfig.setConsumerKey("anonymous");
    //oAuthConfig.setConsumerSecret("anonymous");

    return {oAuthServiceName:name, oAuthUseToken:"always"};
  }     


You can create a file or add a user to a file (add a wriker).

Now I want to implement this functionality with " Drive API " . If someone has done it would be nice to get some help.

Sergi

这篇关于如何将Google云端硬盘文件夹添加到“我的云端硬盘”部分给其他用户的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆