Javascript 不使用Sheets API从Google Sheets获取数据

Javascript 不使用Sheets API从Google Sheets获取数据,javascript,google-apps-script,google-sheets,get,Javascript,Google Apps Script,Google Sheets,Get,我创建了一个应用程序(React Native),要求我显示谷歌表单的回复,因此我创建了回复表 虽然Sheets API是最好的解决方案,但我不希望使用它(除非别无选择) 有没有一种方法可以不使用Google API从工作表中获取数据(csv/json/arrays?/其他任何内容)?我只需要单元格中的值,不需要其他值 注: 我想用JavaScript解析数据 我相信你的目标如下 您希望从Google电子表格中检索值,而不使用Sheets API。 我理解,在本例中,您希望在不使用访问令牌

我创建了一个应用程序(React Native),要求我显示谷歌表单的回复,因此我创建了回复表

虽然Sheets API是最好的解决方案,但我不希望使用它(除非别无选择)

有没有一种方法可以不使用Google API从工作表中获取数据(csv/json/arrays?/其他任何内容)?我只需要单元格中的值,不需要其他值

注:

  • 我想用JavaScript解析数据

    • 我相信你的目标如下

      • 您希望从Google电子表格中检索值,而不使用Sheets API。
        • 我理解,在本例中,您希望在不使用访问令牌和API密钥的情况下检索值
      • 您希望使用Javascript实现这一点
      问题和解决方法: 当Google电子表格与Sheets API一起使用时,需要使用访问令牌和API密钥。当您希望在不使用访问令牌和API键的情况下从Google电子表格检索值时,在这个回答中,我想使用Google Apps脚本创建的Web Apps提出以下解决方法。此解决方案的流程如下所示

    • 从Javascript请求Web应用程序
    • 在Web应用程序中,这些值是从Google电子表格返回的。
      • 在此解决方案中,谷歌电子表格不需要公开共享
    • 从Javascript的Web应用程序中检索值
    • 用法: 请执行以下流程

      1.创建谷歌应用程序脚本的新项目。 Web应用程序的示例脚本是Google应用程序脚本。因此,请创建一个谷歌应用程序脚本项目

      如果要直接创建,请访问。在这种情况下,如果您没有登录Google,则会打开登录屏幕。所以请登录谷歌。这样,谷歌应用程序脚本的脚本编辑器就打开了

      2.准备脚本。 请将以下脚本(Google Apps脚本)复制并粘贴到脚本编辑器。此脚本用于Web应用程序

      function doGet(e) {
        const id = e.parameter.spreadsheetId;
        const sheetName = e.parameter.sheetName;
        const sheet = SpreadsheetApp.openById(id).getSheetByName(sheetName);
        const values = sheet.getDataRange().getValues();
        return ContentService.createTextOutput(JSON.stringify({values: values})).setMimeType(ContentService.MimeType.JSON);
      }
      
      3.部署Web应用程序。
    • 在脚本编辑器上,通过“发布”->“部署为web应用”打开对话框
    • 选择“我”以执行应用程序:“”。
      • 这样,脚本将作为所有者运行
    • 为有权访问应用程序的用户选择“任何人,甚至匿名”“。
      • 在这种情况下,请求时不需要访问令牌。我想我推荐这个设置作为你的目标
      • 当然,您也可以使用访问令牌。此时,请将其设置为“任何人”。请包括
        https://www.googleapis.com/auth/drive.readonly
        https://www.googleapis.com/auth/drive
        访问令牌。访问Web应用程序需要这些作用域
    • 单击“部署”按钮作为新的“项目版本”
    • 自动打开“需要授权”对话框。
    • 单击“查看权限”
    • 选择自己的帐户
    • 单击“此应用未验证”处的“高级”
    • 单击“转到####项目名称###(不安全)”
    • 单击“允许”按钮
    • 单击“确定”
    • 复制Web应用程序的URL。就像
      https://script.google.com/macros/s/###/exec
      • 当您修改Google Apps脚本时,请重新部署为新版本。这样,修改后的脚本将反映到Web应用程序中。请注意这一点。
    • 4.使用Web应用程序运行该功能。 您可以使用以下脚本从Google电子表格中检索值

      const baseUrl = "https://script.google.com/macros/s/###/exec";  // Please set your Web Apps URL.
      const para = {
        spreadsheetId: "###",  // Please set your Google Spreadsheet ID.
        sheetName: "Sheet1"  // Please set the sheet name you want to retrieve the values.
      };
      const q = new URLSearchParams(para);
      const url = baseUrl + "?" + q;
      fetch(url)
        .then(res => res.json())
        .then(res => {
          const values = res.values;
          console.log(values);
        });
      
      如果要使用curl命令测试上述Web应用程序,还可以使用以下curl命令

      $ curl -L "https://script.google.com/macros/s/###/exec?spreadsheetId=###&sheetName=Sheet1"
      
      注:
      • 修改Web应用脚本时,请将Web应用重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请注意这一点。
      • 最近,在我的环境中,我已经确认,当使用Javascript从公共共享的电子表格和发布的电子表格检索到Web时,会发生与CORS相关的错误。我担心这样的问题也可能发生在您的环境中。所以为了实现你的目标,我建议使用网络应用。在这种情况下,我已经确认没有错误发生
      参考资料:

        • 我相信你的目标如下

          • 您希望从Google电子表格中检索值,而不使用Sheets API。
            • 我理解,在本例中,您希望在不使用访问令牌和API密钥的情况下检索值
          • 您希望使用Javascript实现这一点
          问题和解决方法: 当Google电子表格与Sheets API一起使用时,需要使用访问令牌和API密钥。当您希望在不使用访问令牌和API键的情况下从Google电子表格检索值时,在这个回答中,我想使用Google Apps脚本创建的Web Apps提出以下解决方法。此解决方案的流程如下所示

        • 从Javascript请求Web应用程序
        • 在Web应用程序中,这些值是从Google电子表格返回的。
          • 在此解决方案中,谷歌电子表格不需要公开共享
        • 从Javascript的Web应用程序中检索值
        • 用法: 请执行以下流程

          1.创建谷歌应用程序脚本的新项目。 Web应用程序的示例脚本是Google应用程序脚本。因此,请创建一个谷歌应用程序脚本项目

          如果要直接创建,请访问。在这种情况下,如果您没有登录Google,则会打开登录屏幕。所以请登录谷歌。这样,谷歌应用程序脚本的脚本编辑器就打开了

          2.准备脚本。 请将以下脚本(Google Apps脚本)复制并粘贴到脚本编辑器。这