ui.ButtonSet仅适用于所有者帐户

时间:2016-05-24 23:05:37

标签: google-apps-script google-sheets

**编辑 - 我取消了原来的问题,因为我能够将问题缩小到更简单的脚本。如果我使用getUi模块w /我的帐户,这是完全正常的。但是,如果另一个用户这样做,他们就没有结果。如果我作为匿名用户通过脚本编辑器运行此代码,我得不到任何结果。

 function onEdit(){
    var ui = SpreadsheetApp.getUi();
    var prompt = ui.prompt('Type in text?');
    var text = prompt.getResponseText();
  Logger.log(text);

 }

1 个答案:

答案 0 :(得分:0)

基于Official Google Documentation,使用URL Fetch service获取原始XKCD RSS提要,然后使用标准JavaScript正则表达式进行我们需要的替换。最后,将已编辑的源包装在TextOutput对象中,并将MIME类型设置为RSS。

要查看此操作,请将脚本发布为Web应用程序,确保允许匿名访问(因为您的RSS阅读器将以匿名用户身份访问它)。然后将服务的URL添加到RSS阅读器或直接在Web浏览器中访问它。

function doGet() {
var feed = UrlFetchApp.fetch('http://xkcd.com/rss.xml').getContentText();
feed = feed.replace(
/(<img.?alt="(.?)".*?>)/g,
'$1' + new Array(10).join('<br />') + '$2');
return ContentService.createTextOutput(feed)
.setMimeType(ContentService.MimeType.RSS);
}

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