【问题标题】:Javascript google API quickstart errorJavascript google API 快速入门错误
【发布时间】:2018-01-23 01:36:07
【问题描述】:

我正在学习这里的教程:https://developers.google.com/apps-script/api/quickstart/js。当我尝试使用客户端 ID 和 API 密钥插入在窗口平台上本地运行 quickstart.html 时,它在第 144 行抛出错误:

未捕获的 SyntaxError:无效或意外令牌。
未捕获的 ReferenceError:handleClientLoad 未在 HTMLScriptElement.onload 中定义

在完成本快速入门之前,我是否遗漏了需要启用的其他内容?

【问题讨论】:

  • 您使用的是哪种浏览器?
  • @AmitAgarwal 我使用谷歌浏览器
  • @AmitAgarwal 快速入门对您有用吗?我这边也有问题。来自函数 callAppsScript(auth) 部分的快速入门似乎有问题。

标签: google-apps-script google-apps-script-api


【解决方案1】:

我认为 Google 示例脚本存在一些问题。 我发现和修改的是,

  1. 脚本标签上的异步和延迟属性

您可能想要使用 async 属性,但快速解决方法是删除 async 并将 defer 添加到第一个和第二个脚本标签。

    <pre id="content"></pre>
    <!-- add defer to the first script tag -->
    <script defer type="text/javascript">
    ...
    <!-- remove async from the 2nd tag -->
    <script defer src="https://apis.google.com/js/api.js"
  1. callAppsScript 函数中的字符串存在语法错误。

这似乎是转义语法错误和网页中示例代码的换行符处理的结合。以下是我修改的代码的工作片段。

    resource: {
          files: [{
            name: 'hello',
            type: 'SERVER_JS',
            source: 'function helloWorld() {\n  console.log("Hello, world!");\n}'
          }, {
            name: 'appsscript',
            type: 'JSON',
            source: "{\"timeZone\":\"America/New_York\",\"exceptionLogging\":\"CLOUD\"}"
          }]
  1. 调用不存在的函数

示例代码在不存在的updateSigninStatus 中调用callScriptFunction。必须是callAppsScript,但后者需要一个参数。

我将调用 callScriptFunction(); 替换为以下内容,并且有效。

callAppsScript(gapi.auth2.getAuthInstance());

通过进行上述更改,示例可以在服务器端创建一个新脚本,但在更新它时会返回错误。 所以看起来示例代码中还有一些潜在的问题,但这是另一个问题,我猜与原始问题无关。

【讨论】:

    猜你喜欢
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    相关资源
    最近更新 更多