私の社内のGoogleサイトイントラネット向けに以下のGASコードを作成しました。時間とログインしているユーザーを引き出し、閲覧したページを投稿することで、従業員がイントラネットツールを使用していることと、その情報が最も価値のある情報を確認することができます。新しいコンテンツをイントラネットに追加すると、このスクリプトを複製し、Insert >> Google Apps Scriptプロンプトを使用して新しいGoogleサイトのページに埋め込みます。また、Admin SDKとGoogle Sheetsサービスが有効になっていることを確認します。私はApps-Script環境の中からdoGet機能を実行することもできます。すべてが魅力的です。GAS関数新しいページに埋め込まれているときにページ埋め込み時にdoGetがトリガーされない(http混在コンテンツ)
私は理解できない理由から、このスクリプトは新しいページに埋め込むときには機能しません。
1)スクリプトが現在
2)新しいGoogleお知らせページ
3)を埋め込むステップからの正確なスクリプトを作成し、[成功]ページに取り組んでいるを確認します。私は、次の手順を試してみました
:ここでは、新しいGoogleのページへ14)新しいページを更新し、スクリプトがログシートを埋めているかどうかを確認[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&cht=d&chdp=sites&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&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エラーにフラグを立てるのか分かりません。
エラーログには何が表示されますか? – noogui
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スクリプトを実行すると、これはうまく動作しません。私はそれを正しく接続していると思うので、なぜ今は動作しないのかわかりません。 –