您无权执行该操作
Posted
技术标签:
【中文标题】您无权执行该操作【英文标题】:You do not have permission to perform that action 【发布时间】:2015-03-27 20:39:39 【问题描述】:我有一个时间触发脚本,它定期从外部来源检索内容并使用它更新 Google 网站页面。 根据this,该脚本应该在我的帐户下运行,该帐户对该Google 网站页面进行了全面评估(通过手动编辑进行了测试)。 但是当我运行脚本时,我得到了
。
如果我可以手动编辑页面,为什么我在运行脚本时没有该权限?
这里是(通用的)脚本函数:
function updatePage()
var site = 'https://sites.google.com/a/mydomain.com/myhome/mypagegroup/mypage';
var pageName = '/mypagegroup/mypage';
var site = SitesApp.getSiteByUrl(site);
var page = site.getChildByName(pageName); //works fine
Logger.log('page: ' + page.getTitle()); //displays correct page title
var html = '<p>'; //in actual script, I get html from external source
Logger.log('html: ' + html);
page.setHtmlContent(html); //this is where the error is generated ("You do not have permission to perform that action")
;
【问题讨论】:
【参考方案1】:虽然这是一个旧帖子。我找到了解决我的类似问题的方法。您应该添加权限或范围:https://developers.google.com/apps-script/concepts/scopes#setting_explicit_scopes
【讨论】:
【参考方案2】:在脚本编辑器中,您是否从下拉列表中选择了函数名称,然后单击运行图标?
第一次以这种方式运行时,将显示一个弹出窗口,说明需要授权。您必须授权修改站点。如果这还没有完成,你会得到一个错误。
授权网站:
在授权脚本后,我运行了你的代码,并且它工作了。
您可以进入您的帐户,查看您授予了哪些项目权限。您需要选择“帐户”,然后在“帐户设置”窗口的“安全检查”部分中单击“开始”。
【讨论】:
感谢您的建议。我进行了安全检查并找到了授权:Google Sites Manage your sites Additional access Connect to an external service 所以我删除了强制重新授权的授权,当我(从控制台)重新运行脚本时,它确实提示进行授权,但我仍然遇到同样的错误......这是谷歌网站所有者必须给予脚本的单独权限吗?他们已将其提供给我的帐户,并且由于我的脚本在我的帐户下运行,因此我认为它具有相同的权限,但我想不出任何其他导致身份验证错误的原因。 我唯一能想到的另一件事是,您正在使用的站点 URL 和/或 pageName 变量错误,并且代码正在尝试更改不存在的站点或页面.当我测试代码时,我只是从我的 Google 站点的浏览器地址字段中复制了 URL:https://sites.google.com/site/mysitename/
,我只使用了页面名称,没有层次结构。
这是一个旧帖子,但我想知道,有人找到解决方案了吗?我正在做与原始帖子非常相似的事情。对我来说,我的应用程序脚本运行了一段时间(比如 2 个月),然后开始出现“您无权执行该操作”的错误消息。我可以转到站点公告页面并编辑或创建新帖子没问题。我已经未经授权并重新授权,但没有任何效果。问题仅出在应用程序脚本/站点服务上。提前谢谢你。
您应该查看问题跟踪器Link to Issue Tracker 并搜索相同的问题。如果您没有找到现有问题,那么我建议您创建一个新问题。脚本不应无缘无故地突然失去授权。有趣的是,您的脚本只会失去对站点服务的授权,而不是其他任何东西。以上是关于您无权执行该操作的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 错误:与 Apple 的通信失败。您无权执行此操作。当我有
Django-rest-framework API 测试 403 'detail': '您无权执行此操作。'