找不到脚本功能:doGet

时间:2014-03-08 17:01:55

标签: google-apps-script

当我尝试点击“测试网络应用以获取最新代码”时,我不断收到此错误消息。在“发布”对话框中。

但我没有定义任何名为doGet()的函数。

我的代码只有:

function unreadCount() {
  var unreadNum = "Messages unread in inbox: " + GmailApp.getInboxUnreadCount();
  return unreadNum
}

4 个答案:

答案 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;
}

应该这样做