代码之家  ›  专栏  ›  技术社区  ›  beano

授权Google Charts访问私有电子表格

  •  0
  • beano  · 技术社区  · 6 年前

    我正在尝试使用Google Apps脚本创建一个Web应用程序,以使用 Google Charts .

    当Google表单公开共享时,我能够成功地查询电子表格,但是由于电子表格包含机密信息,我宁愿私下使用 authorizations .

    我之所以想使用Google图表可视化功能(而不是服务器端的电子表格应用程序),是因为查询大型数据集的速度很快。

    我已尝试按照上述文档中的步骤进行操作。也就是说,创建一个客户端id,然后使用gapi。对库进行身份验证,但我继续收到错误。

    当我从文档中添加授权库和第一部分代码时(使用console.log只是为了查看它的用途):

    <script src="https://apis.google.com/js/auth.js?onload=init"></script>
    
    <script> 
    var clientId = '1234.apps.googleusercontent.com'; 
    var scopes = 'https://spreadsheets.google.com/feeds';       
    
    function init() { 
      
    console.log("here");  
      
    gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true},handleAuthResult);
    
    }
    
    </script>
    

    我收到以下错误:

    1289869776-mae\U html\U user\U bin\U i18n\U mae\U html\U user。js:41下降 postMessage。。来自意外窗口

    感谢您的指导。

    2 回复  |  直到 4 年前
        1
  •  3
  •   Wicket    6 年前

    由于您是使用Google Apps脚本创建web应用程序,因此无需“授权Google Charts访问私有图表”,因为您可以使用Google Apps脚本服务和方法从电子表格中获取数据并将其传递给Google Charts。

    在…上 Converting from UiApp + Chart Service to Html Service + Google Visualization API 本文展示了如何将旧的仪表板示例从UiApp+图表服务转换为HtmlService+Google可视化API。这说明了如何创建一个Google Apps脚本web应用程序,该应用程序根据Google电子表格数据构建图表,而无需“授权”,因为它是由Google Apps脚本“隐式”处理的。

    从以上链接

    两个函数协作检索并显示仪表板数据。一旦加载可视化API,就会调用sendQuery()函数。 使用谷歌。剧本运行facility时,它将其请求发送到服务器端getSpreadsheetData()函数 . 这是一个异步操作,因此提供了两个回调,一个是successHandler,一个是failureHandler。其中一个将接收服务器调用的结果,具体取决于结果。

    H/T至 jfllmartin ,作者 answer Converting my google dashboard app from the UI service to the HTML service 共享上述链接的位置。

    相关的

        2
  •  1
  •   Jason Allshorn    6 年前

    我可以建议您从使用Google sheets改为将firebase与Google sheets或firebase一起使用,然后在后端使用Google appscript。

    我经常使用Google脚本来用Google工作表中的数据更新Firebase。然后,我享受Firebase的速度和安全性,以提供超快的用户体验。

    在appscript中使用Firebase有两个转到页面。示例 page 以及 quick start .

    此外,我放弃了使用谷歌自己的图表库,开始使用high charts或chartJS,因为它们更容易访问。