0

私の社内のGoogleサイトイントラネット向けに以下のGASコードを作成しました。時間とログインしているユーザーを引き出し、閲覧したページを投稿することで、従業員がイントラネットツールを使用していることと、その情報が最も価値のある情報を確認することができます。新しいコンテンツをイントラネットに追加すると、このスクリプトを複製し、Insert >> Google Apps Scriptプロンプトを使用して新しいGoogleサイトのページに埋め込みます。また、Admin SDKとGoogle Sheetsサービスが有効になっていることを確認します。私はApps-Script環境の中からdoGet機能を実行することもできます。すべてが魅力的です。GAS関数新しいページに埋め込まれているときにページ埋め込み時にdoGetがトリガーされない(http混在コンテンツ)

私は理解できない理由から、このスクリプトは新しいページに埋め込むときには機能しません。

1)スクリプトが現在

2)新しいGoogleお知らせページ

3)を埋め込むステップからの正確なスクリプトを作成し、[成功]ページに取り組んでいるを確認します。私は、次の手順を試してみました

:ここでは、新しいGoogleのページへ1

4)新しいページを更新し、スクリプトがログシートを埋めているかどうかを確認[FAILED]

は、以下の私のコードです

/* 
 
This Script Needs the following Advanced Services to function: 
 

 
    Admin Directory 
 
    
 
    This Script Could be used with the following library, but is not required: 
 

 
    BetterLog: MYB7yzedMbnJaMKECt6Sm7FLDhaBgl_dE 
 

 
    
 
*/ 
 

 
//PropertiesService.getScriptProperties().setProperties({'LogSheet':'1hw3f5ywdbF6JuRd1lPzrCthNaMb5InHl9VBP-xxxxxx', 'ErrSheet': '1_PHc1EU0JYLJirMceAP_enktaP3HJmGHS407Oxxxxx'}); 
 

 
try{ 
 
//------------------------------------------------- 
 
    
 
var ACTIVE = true; 
 
    
 
    
 
var PAGE = 'Name of the Page to Track'; 
 
var TYPE = 'Article'; 
 
var GROUP = 'Department Name'; 
 
var URL = 'https://sites.google.com/a/Intranet/URL for the Article'; 
 
//-------------------------------------------------- 
 

 
if(ACTIVE){ 
 
var errorTemplate = 'Analytics_Error_Log_started_'; 
 
var logTemplate = 'Analytics_Log_started_' 
 
var now = new Date(); 
 
var date = Utilities.formatDate(now, 'CST', 'MM/dd/YYYY'); 
 
var time = Utilities.formatDate(now, 'CST', 'hh:mm:ss a'); 
 
var user = AdminDirectory.Users.get(Session.getActiveUser().getEmail()); 
 
var scriptStore = PropertiesService.getScriptProperties().getProperties(); 
 
var errorFolder = '0B6w6hIuCv6BtdHl1S09kbxxxx'; 
 
var logFolder = '0B6w6hIuCv6BtWldmYjdEbxxxxx'; 
 
var logSheet = getSheet('LogSheet', logTemplate, logFolder); 
 
var errSheet = getSheet('ErrSheet', errorTemplate, errorFolder); 
 
var scriptStore = PropertiesService.getScriptProperties().getProperties(); 
 
var errSheet = SpreadsheetApp.openById(scriptStore.ErrSheet).getSheets()[0]; 
 
var logSheet = SpreadsheetApp.openById(scriptStore.LogSheet).getSheets()[0]; 
 
    } 
 
} 
 
catch(e){Logger.log('Compiler Error in File TK-'+PAGE+': '+e);} 
 
    
 
function doGet(){ 
 
     
 
    try{if(ACTIVE){ 
 
       logSheet.appendRow([date, time, user.name.givenName, user.name.familyName, PAGE, TYPE, GROUP, user.primaryEmail, URL]); 
 
    }} 
 
    
 
    catch(e) {report(e);} 
 
} 
 

 
function report(e){ 
 
Logger.log(date+' '+time+' '+user.primaryEmail+' at '+PAGE+' : '+e); 
 
errSheet.appendRow([date, time, user.primaryEmail, PAGE, e]); 
 

 
    
 
} 
 

 
function getSheet(scriptStoreVal,template, folderId){ 
 
    var sheetId = scriptStore[scriptStoreVal]; 
 
    try{var book = SpreadsheetApp.openById(sheetId);} 
 
    catch(e){var sheetId = generateSheet(template+date, folderId);} 
 
    
 
    var book = SpreadsheetApp.openById(sheetId); 
 
    var sheets = book.getSheets(); 
 
    var sheet = sheets[0]; 
 
    
 
    if(sheet.getLastRow() >= 50000){ 
 
    var fileList = DriveApp.getFolderById(folderId).getFiles(); 
 
    var found = false; 
 
    while(fileList.hasNext()) 
 
    { 
 
     var testFile = fileList.next().getId(); 
 
     if (SpreadsheetApp.openById(testFile).getSheets()[0].getLastRow() < 50000) 
 
     { 
 
     var book = SpreadsheetApp.openById(testFile) 
 
     var sheet = book.getSheets()[0]; 
 
     var sheetId = testFile; 
 
     var found = true;} 
 
    } 
 
    
 
    if(!found) 
 
    { 
 
     var sheetId = generateSheet(template+date, folderId); 
 
     var book = SpreadsheetApp.openById(sheetId); 
 
     var sheets = book.getSheets(); 
 
     var sheet = sheets[0]; 
 
    } 
 
    
 
    for (var s = 1; s < book.getNumSheets(); s++) 
 
    { 
 
     book.deleteSheet(sheets[s]); 
 
    } 
 
    } 
 
    if(book.getName().indexOf('Er') > -1) 
 
    { 
 
     try{sheet.deleteColumns(4,22); sheet.appendRow(['Error Message: Press Ctrl Down to scroll to end. 50K Max'])} 
 
     catch(e){/*Sheet does not have 26 columns. We are set*/} 
 
    } 
 
    else 
 
    { 
 
     try{sheet.deleteColumns(8, 17); sheet.appendRow(['Date', 'Time', 'First Name', 'Last Name', 'Page', 'Type', 'Group','Email', 'URL']);} 
 
     catch(e){/*Sheet does not have 26 columns. We are set*/} 
 
    } 
 
    
 
    var patch = {}; patch[scriptStoreVal] = sheetId; 
 
    PropertiesService.getScriptProperties().setProperties(patch); 
 
    
 
    return sheet; 
 
} 
 

 

 
function generateSheet(sheetName, folderId) 
 
{ 
 
    var origId = SpreadsheetApp.create(sheetName).getId(); 
 
    var file = DriveApp.getFileById(origId); 
 
    var start = file.getParents().next(); 
 
    DriveApp.getFolderById(folderId).addFile(file); 
 
    start.removeFile(file); 
 
    return origId; 
 
}

誰もがまだ私の前のページで動作します。この機能は、私の新しいページ上では動作しませんなぜ私が把握助けることができますか?

おかげで、 ナサニエル

UPDATE:nooguiからの提案PERが、私はクロームのデバッグコンソールを引き上げ、ページがHTTPを介して混合要求としてアプリケーションスクリプト挿入フラグを立てるに気づきました。ここではページのHTMLは現在、次のとおりです。

<div> 
 

 

 
<div></div> 
 
<br> 
 
</div> 
 
<div></div> 
 
<div></div> 
 
<div><img src="https://www.google.com/chart?chc=sites&amp;cht=d&amp;chdp=sites&amp;chl=%5B%5BGoogle+Apps+Script'%3D20'f%5Cv'a%5C%3D0'10'%3D499'0'dim'%5Cbox1'b%5CF6F6F6'fC%5CF6F6F6'eC%5C0'sk'%5C%5B%22Apps+Script+Gadget%22'%5D'a%5CV%5C%3D12'f%5C%5DV%5Cta%5C%3D10'%3D0'%3D500'%3D297'dim'%5C%3D10'%3D13'%3D500'%3D297'vdim'%5Cbox1'b%5Cva%5CF6F6F6'fC%5CC8C8C8'eC%5C'a%5C%5Do%5CLauto'f%5C&amp;sig=zdJ4UDJFmGvXXHTFJf3RLHWWKks" data-props="align:left;showBorder:false;showBorderTitle:false;borderTitle:Apps Script Gadget;height:200" id="388247003045773" data-type="maestro" class="sites-placeholder-maestro" data-origsrc="https://script.google.com/a/intranet/macros/s/AKfycbxIpjE0HKKYBWpB16fB3D7BPeLtP-Y-FXLnWk3l-w853qSloes/exec" width="500" height="300" style="display: block; text-align: left;"></div> 
 
<br>

あなたが見ることができるように、イメージプレースホルダー、スクリプト自体がHTTPSを介して参照されているので、何ができますか?なぜ私はそれが混在しているHTTPエラーにフラグを立てるのか分かりません。

+0

エラーログには何が表示されますか? – noogui

+0

Chromeデベロッパーコンソール:混在コンテンツ: 'https://sites.google.com/a/intranet/test/test3'のページがHTTPS経由で読み込まれましたが、安全でないリソース(http://sites.google。 com/a /イントラネット/ sites/system/errors/WebspaceNotFound?path =%2Fmacros%2Fs%2FAKfycbwKAHCJgn9yeJ2G0ZxOlXwcClDV9hFY2RSHOZWU6gUUdddosv4P%2Fexec 'このリクエストはブロックされました。 HTTPS経由でコンテンツを配信する必要があります。私が最初に使用したページでSAMEスクリプトを実行すると、これはうまく動作しません。私はそれを正しく接続していると思うので、なぜ今は動作しないのかわかりません。 –

答えて

0

私はGoogleアナリティクスを使用していますが、Googleのサイトのイントラネットではこれが参考になるかわかりません。それはすべてを処理し、AIのデータ分析にも役立ちます。サイト管理の設定には、分析キーを挿入する場所があります。それは完全に自由で動的なので、追加する新しいページや記事は自動的に追跡されます。

enter image description here

+0

Supertopozありがとうございますが、公開サイトの訪問を分析するのではなく、個々の従業員がページを訪問したときにその旨を記録しています。 Googleアナリティクスでは、プライバシーに関する懸念から、そのレベルの細分性は認められていないため、使用できません。 –

関連する問題