繁体   English   中英

如何使用Apps Script获取当前登录用户的Google文档列表?

[英]How do I get a list of Google Docs for the current logged in user with Apps Script?

我正在Google网站上使用Apps Script,并且尝试使用Oauth将小工具验证为活动用户,以显示活动用户文档列表。 我发现一些Google小组讨论都在询问有关此问题的答案,但都没有答案,希望我能在这里找到答案。 这是我的代码:

var oauthConfig = UrlFetchApp.addOAuthService(“ gDocs”); oauthConfig.setAccessTokenUrl(“ https://www.google.com/accounts/OAuthGetAccessToken”); oauthConfig.setRequestTokenUrl(“ https://www.google.com/accounts/OAuthGetRequestToken?scope=https://docs.google.com/feeds/”); oauthConfig.setAuthorizationUrl(“ https://www.google.com/accounts/OAuthAuthorizeToken”); oauthConfig.setConsumerKey(“ myDomainName”); oauthConfig.setConsumerSecret(“ myCosumerSeceret”);

var options = {“方法”:“ GET”,“标题”:{“ GData-Version”:“ 3.0”},“ oAuthServiceName”:“ gDocs”,“ oAuthUseToken”:“始终”};

var results = UrlFetchApp.fetch(“ https://docs.google.com/feeds/default”,选项);

此时,代码无法运行,并且显示带有小工具的页面:必须执行授权才能执行该操作。

任何帮助将不胜感激。

谢谢James Krimm

为了使用三足式OAuth执行授权,您必须使用“匿名”作为ConsumerKey和ConsumerSecret:

 oauthConfig.setConsumerKey("anonymous");
 oauthConfig.setConsumerSecret("anonymous");

另外,请注意,正确的Feed网址是https://docs.google.com/feeds/default/private/full

但是,如果您的目标是获取活动用户的文档列表,那么为什么不只使用Apps Script提供的DocsList Services? 他们还将为您解析结果。

https://developers.google.com/apps-script/service_docslist

无法访问active user数据。 在站点上,已发布的Apps脚本以称为“ effective user ”的脚本所有者的身份运行。 并且,出于安全考虑,脚本所有者无权访问active user任何数据。

因此,@ claudio所建议的(使用内置DocsList)是不可能的。

除非我们谈论的是Google Apps域(而不是普通消费者帐户),否则脚本所有者是域管理员。 在这种情况下,他可以使用Google文档列表数据API来模拟其域中的任何用户。

无论哪种情况,无论这种情况如何,使用者密钥和机密都应始终是“匿名的”。

我有一个Google Script OAuth库https://sites.google.com/site/scriptsexamples/custom-methods/google-oauth ,它将使OAuth的工作减轻。

以及当前正在开发的DriveSrevice库的一些源代码,这些源代码将达到Google脚本中所缺少的要点。 https://sites.google.com/site/scriptsexamples/custom-methods/driveservice

此特定错误可能与OAuth不相关,但与将DocsList添加到应用程序有关。

请参阅: https//developers.google.com/apps-script/troubleshooting#common_errors

需要授权才能执行该操作。

此错误表明脚本缺少运行所需的授权。 在脚本编辑器中或从自定义菜单项中运行脚本时,将向用户显示授权对话框。 但是,当脚本作为服务运行,嵌入到Google Sites页面或从触发器运行时,将无法显示对话框,并显示此错误。 要授权脚本,请打开脚本编辑器并运行任何功能。 为避免此错误,请记住在向脚本中添加新服务或功能后在脚本编辑器中运行一次脚本。

这里的答案不正确。 您可以执行所需的操作,但不能直接使用Oauth。 而是,发布带有“以当前用户身份运行”选项而不是脚本所有者的选项的Apps脚本。 然后使用DriveApp的DocsList获取用户文件。 此处的关键是将服务发布为“在用户访问应用程序时运行”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM