Javascript 如何允许通过应用程序脚本访问导入功能?
当您在电子表格中手动输入导入功能时,您将收到一个弹出窗口,并且必须“允许访问” 然而,我正试图通过一个脚本找到一种方法来实现这一点,因为我正在创建许多电子表格,每个电子表格都有一个查询导入功能(我“拥有”有数据要导入的电子表格)。太多了,我无法通过弹出窗口手动“允许访问”并更新函数以包含查询函数 因此,我在apps脚本中寻找一个函数调用,它可以执行与弹出窗口相同的操作。下面是代码段示例 有人知道可以“允许访问”的函数吗? 斯特凡Javascript 如何允许通过应用程序脚本访问导入功能?,javascript,google-apps-script,google-sheets,importrange,Javascript,Google Apps Script,Google Sheets,Importrange,当您在电子表格中手动输入导入功能时,您将收到一个弹出窗口,并且必须“允许访问” 然而,我正试图通过一个脚本找到一种方法来实现这一点,因为我正在创建许多电子表格,每个电子表格都有一个查询导入功能(我“拥有”有数据要导入的电子表格)。太多了,我无法通过弹出窗口手动“允许访问”并更新函数以包含查询函数 因此,我在apps脚本中寻找一个函数调用,它可以执行与弹出窗口相同的操作。下面是代码段示例 有人知道可以“允许访问”的函数吗? 斯特凡 我遇到了与此类似的问题,并发现答案是更改从中导入数据的spread
我遇到了与此类似的问题,并发现答案是更改从中导入数据的spreadhseet文件的权限(示例中的“filekey”) 这是让“允许访问”消失的谷歌应用程序脚本:
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW)
我所做的一切就是与组织中使用gsheet模板的人员共享“源”表——
ImportRange
从中获取其数据的表。我通过单击“授权访问”按钮编辑了该模板,此后我从该模板制作的所有表都工作了
ImportRange
功能可以正常工作,我无需重新授权从模板创建的每个新工作表的访问权限。我希望它能为我所在组织中的其他人工作。我通过调用addimportrangepermissions端点,使用python库自动完成此操作
sheet.client.request(
'post',
f'https://docs.google.com/spreadsheets/d/{sheet.spreadsheet.id}/externaldata/addimportrangepermissions',
params={'donorDocId': external_sheet.spreadsheet.id}
)
我知道这不是通过应用程序脚本实现的,但它可以为您提供一些如何在那里实现的提示
注意:我没有找到任何关于这方面的文档,因此我认为这可以帮助任何人在任何平台(应用程序脚本、python等)上尝试做同样的事情.我认为不可能调用函数来允许访问。相反,您可以通过名称或ID访问工作表,并在应用程序脚本中获得所需的范围。希望这会有所帮助!您是否尝试过直接从GAS IDE运行一些主函数,据说谷歌会查看您的代码并让您一步完成身份验证?您是否拥有该工作表?可能这是唯一的解决方案-导入的工作表必须公开,并且您不再有
允许访问
。谢谢。请注意file.setSharing(DriveApp.access.DOMAIN_带链接,DriveApp.Permission.VIEW);
或file.setSharing(DriveApp.access.DOMAIN_带链接,DriveApp.Permission.EDIT);
不起作用。
sheet.client.request(
'post',
f'https://docs.google.com/spreadsheets/d/{sheet.spreadsheet.id}/externaldata/addimportrangepermissions',
params={'donorDocId': external_sheet.spreadsheet.id}
)