当我尝试点击“测试网络应用以获取最新代码”时,我不断收到此错误消息。在“发布”对话框中。
但我没有定义任何名为doGet()的函数。
我的代码只有:
function unreadCount() {
var unreadNum = "Messages unread in inbox: " + GmailApp.getInboxUnreadCount();
return unreadNum
}
答案 0 :(得分:5)
Google Apps脚本中的每个网络应用都必须有一个名为doGet()的主要功能,该功能是应用的入口点,当您输入网络应用网址时,您的应用将以此功能开始。
对于部署为独立应用程序并由其URL调用的每个应用程序都是如此 - 使用或不使用用户界面。
如果您阅读文档,您会看到HTMLService或UiApp的所有独立应用程序示例都具有doGet功能。
此规则不涉及容器嵌入式ui脚本或在触发器上运行的脚本。
知道了,你得到的错误信息可能更有意义吗?
答案 1 :(得分:3)
正如Serge insas所说,你必须首先按照Google的文档中的描述实现doGet(e)功能。
但是,在实施之后,请确保保存项目的新版本(文件>管理版本...然后保存新版本),然后部署新版本的Web应用程序。否则,您将继续从Google获得“doGet not implemented”错误。这是因为在您实现doGet之前,它仍在使用旧版本的应用程序。
答案 2 :(得分:1)
我收到此错误是因为我在Google脚本中定义了doPost()
功能,但我的表单是提交GET请求而不是POST请求。
此问题的解决方案是从表单提交POST请求:
<form action='google-script-here' method='post'>
答案 3 :(得分:0)
添加此
public static IEnumerable<int> FindMissing(IEnumerable<int> mainList, IEnumerable<int> listToCompare)
{
// Compare lists and return values that aren't in mainList but are in listToCompare
HashSet<int> convertedToHash = new HashSet<int>(mainList);
convertedToHash.ExceptWith(listToCompare);
return convertedToHash;
}
应该这样做