0

У меня есть код для встраивания, который мне нужно разместить на сайте Google, этот сайт будет ограничен нашими пользователями домена Google. Я могу разместить этот JavaScript в гаджетах Google, и он отлично работает.Получить имя пользователя 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. I может восстановить текущий адрес электронной почты с помощью объекта Скриншот Google Apps ниже, но я не знаю, как сделать эти две совместной работы.

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

Другая проблема заключается в том, что Google обеззараживает некоторые JavaScript, когда я пытаюсь включить весь код в только Google Apps Script.

У меня действительно нет большого опыта в этой области, поэтому, если бы кто-нибудь мог указать мне в правильном направлении, я был бы признателен.

ответ

0

Я узнал о 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); 
} 

Тогда я назвал службу веб-приложение через URL в моем XML Gadget

<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> 

]]> 

This article на Google Developers поставили меня в правильном направлении.

+0

Просто обратите внимание, что этот метод работает только в доменах Google Apps. –