【问题标题】:Retrieve Google Username in Gadget在小工具中检索 Google 用户名
【发布时间】:2015-05-15 15:39:16
【问题描述】:

我有一些嵌入代码需要放在 Google 站点上,该站点将仅限于我们的 Google 域成员。我可以将此 JavaScript 放在 Google 小工具中,它工作正常。

<script type="text/javascript" src='https://HOSTNAME/Forms/js/forms-embed.js?v=9.2'>
</script>
<script type="text/javascript">
    var lfembed = new LaserficheForms.Form(null /*element to place form in*/,{bpid: '1', host:'https://HOSTNAME/Forms', params:PARAMS, autoheight: false}).getFrm();
    lfembed.style.height = "100%";
</script>

问题是我希望能够获取当前登录用户的电子邮件地址并将其传递到上面代码的params: 部分。

据我所知,您无法在 Google 小工具中执行此操作。我可以使用下面的 Google Apps Script 对象检索当前的电子邮件地址,但我不知道如何使两者协同工作。

function doGet() {
  var gauser = Session.getActiveUser().getEmail();
  var output = ContentService.createTextOutput(gauser);
   return output;
}

另一个问题是,当我尝试将所有代码仅包含在 Google Apps 脚本中时,Google 会清理一些 JavaScript。

我在这方面真的没有太多经验,所以如果有人能指出我正确的方向,我将不胜感激。

【问题讨论】:

    标签: javascript google-apps-script google-sites google-gadget


    【解决方案1】:

    我今天了解了JSONP

    我最终通过发布以下 Google Apps Script 网络应用程序来实现这一点。

    function doGet(request) {
      var gauser = Session.getActiveUser().getEmail();
    
      return ContentService.createTextOutput(
        request.parameters.prefix + '(' + JSON.stringify(gauser) + ')')
        .setMimeType(ContentService.MimeType.JAVASCRIPT);
    }
    

    然后我通过我的 XML Gadget 中的 URL 调用 Web 应用服务

    <script src="https://WEBAPPURL?prefix=lfdo"></script>
    

    这将用户名值放入lfdo 函数中,我将其插入到我需要它的参数字符串中。

    XML 小工具的完整内容部分:

    <![CDATA[
    <script type="text/javascript" src='https://HOSTNAME/Forms/js/forms-embed.js?v=9.2'></script>
    <script type="text/javascript">
    
        function lfdo(gauser) {
            console.log(gauser);
            var lfembed = new LaserficheForms.Form(null /*element to place form in*/,{bpid: '1', host:'https://HOSTNAME/Forms', params:'Name='+ gauser, autoheight: false}).getFrm();
            lfembed.style.height = "100%";
            gadgets.window.adjustHeight();
        }
    
    </script>
    
    <script src="https://WEBAPPURL?prefix=lfdo"></script>
    
    ]]>
    

    Google Developers 上的This article 为我指明了正确的方向。

    【讨论】:

    • 请注意,此方法仅适用于 Google Apps 域。
    • 我面临的问题是应用脚本必须由登录用户授权。除非用户明确授权至少一次失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多