即使在共享容器之后,容器绑定的Google脚本也不会执行

时间:2013-08-16 21:13:04

标签: google-apps-script

我在我的一张Google工作表中写了一个脚本,当点击一个按钮时,它会从活动工作表中复制数据并将其粘贴到另一个文件中。登录到任何谷歌帐户后,脚本运行良好但是当匿名用户单击该按钮时没有任何反应。根据有关容器绑定脚本的信息,它们的权限镜像容器的权限。我已经确保共享容器以便与匿名用户一起编辑,但除非已登录,否则脚本仍然无法执行。

我做错了什么?代码如下。

function DataCapture() {


    // Set Sheets

    var source_sheet = SpreadsheetApp.getActiveSpreadsheet();
    var target = SpreadsheetApp.openById("0AtYhRMASIGlFdGVQWFprMEpOOFRrUGYxTmNGd0dZLVE");
    var target_sheet = target.getSheetByName('Data');

    // Get target last row
    var last_row = target_sheet.getLastRow();

    // Set Ranges
    var source_range = source_sheet.getRange("A2:P2");
    var target_range = target_sheet.getRange("A"+(last_row+1)+":P"+(last_row+1));
    var info_range = source_sheet.getRange("D7:E7");
    var dollar_range = source_sheet.getRange("B7:B8");
    var approver_range = source_sheet.getRange("D7:F7");

    // Fetch values
    var values = source_range.getValues();

    // Save to spreadsheet
    target_range.setValues(values);

    // Clear the fields for the next entry
    source_range.clearContent()
    info_range.clearContent()
    dollar_range.clearContent()
    approver_range.clearContent()

}

1 个答案:

答案 0 :(得分:1)

该按钮将在用户权限下运行。如果它是匿名的,它将不会运行,如果它需要任何api权限(如阅读电子表格),因为没有用户。 对于非匿名用户,您需要添加一个菜单项,该菜单项将触发谷歌权限对话框(只需从中进行任何愚蠢的api调用)。在用户批准后,它将能够单击图像按钮