从谷歌网站获取 app_id

问题描述

我想通过脚本授予我网站的访问权限,对于谷歌文档,我可以从以下网址获取 ID:https://docs.google.com/document/d//edit
并执行此操作:DriveApp.getFileById('').addViewer(emailid);

但对于谷歌网站,我改为使用这种格式:
https://sites.google.com/d//p//edit
我尝试使用 id_1 和 id_2 但都不起作用。

有人可以帮我吗?

谢谢

解决方法

用于 Google 协作平台的正确文件 ID 是 。 无法向站点添加查看者的原因是因为与 Google 文档不同,Google 协作平台没有查看者共享选项。相反,它使用 published viewer option

示例:3 个具有不同访问权限的用户 (在此示例中,我使用的是新的 Google 协作平台)

enter image description here

示例代码:

function myFunction() {
  Logger.log(DriveApp.getFileById('id_1').getViewers());
  Logger.log(DriveApp.getFileById('id_1').getEditors());
}

日志:

[21-01-07 00:52:50:404 HKT] []
[21-01-07 00:52:50:719 HKT] [DriveUser]

如果您想为您的 Google 网站设置查看者,您可以在 Apps 脚本中使用 Sites Service。但是,您只能将 Site.addViewer(emailAddress) 用于经典网站。

注意: Google 协作平台的重建版本于 2016 年 11 月 22 日发布。Apps 脚本目前无法访问或修改使用此版本创建的站点,但脚本仍然可以访问经典站点。

(更新)

目前,没有其他选项可以通过 Apps 脚本或 API 更新 Google 协作平台。

基于此参考:When will available the API Google Site?

新版 Google 协作平台目前不提供 API,但 Google 已宣布将提供包括 Google Apps 脚本集成在内的 API 功能。

有关详细信息,请参阅 Deprecation Timeline - classic Google Sites

Google 不会提供功能何时可用的日期,因此您将找不到。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...