2017-12-28 17 views
0

GoogleのシートはOpen Showのサイドバーで構成されています。サイドバーのHTMLメニューカスタムメニュー、いくつかのボタンが追加されました.Goファイルで作成された関数をOnClickイベントで実行します。HTML OnClick ButtonでGoogle App Script関数を呼び出す方法

私は、削除イベント(レフェリーサポートポータル)を使用しようとしましたが、クリックイベントでその機能を呼び出せませんでした。私はサンプルシートと完全なコードを添付した以下

、問題を解決するために私を助けてください

[サンプルシートあなたがしたい機能を指定する必要があります1

function onOpen() { 
 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
 
     .createMenu('Custom Menu') 
 
    
 
     .addItem('Show sidebar', 'showSidebar') 
 
     
 
     .addToUi(); 
 
} 
 

 
function showSidebar() { 
 
    var html = HtmlService.createHtmlOutputFromFile('Index') 
 
     .setTitle('Sheet') 
 
     .setWidth(300); 
 
    SpreadsheetApp.getUi() // Or DocumentApp or FormApp. 
 
     .showSidebar(html); 
 
} 
 

 

 

 
var Status_Set = "Deleted"; 
 

 
function Deleteuser() { 
 
var ss= SpreadsheetApp.getActiveSpreadsheet(); 
 
var sheet = ss.getSheetByName('Delete User'); 
 
    var startRow = 2 ; // First row of data to process 
 
    var numRows = sheet.getLastRow()-1; 
 
    var dataRange = sheet.getRange(startRow, 1, numRows, 5) 
 

 
var data = dataRange.getValues(); 
 
for(var i = 0; i < data.length; ++ i) { 
 
    var lastName = data[i][0]; 
 
    var firstName = data[i][1]; 
 
    var email = data[i][2]; 
 
    
 
    }; 
 

 
    
 
AdminDirectory.Users.remove(email); 
 

 

 
    Browser.msgBox('Your Request has been provisioned successfully', Browser.Buttons.OK_CANCEL); 
 
Logger.log('Deleted'); 
 
    sheet.getRange(startRow + i,5).setValue(Status_Set); 
 

 
    
 
};
<!DOCTYPE html> 
 
<html> 
 
<title>W3.CSS Template</title> 
 
<meta charset="UTF-8"> 
 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
 
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"> 
 
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway"> 
 
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 

 
<style> 
 
html,body,h1,h2,h3,h4,h5 {font-family: "Raleway", sans-serif} 
 
</style> 
 
<body class="w3-light-grey"> 
 

 
<!-- Top container --> 
 
<div class="w3-bar w3-top w3-black w3-large" style="z-index:4"> 
 
    <button class="w3-bar-item w3-button w3-hide-large w3-hover-none w3-hover-text-light-grey"><i class="fa fa-dashboard"></i> My Dashboard</button> 
 
</div> 
 

 

 

 
<!-- !PAGE CONTENT! --> 
 

 

 
    <br> 
 
    <div class="w3-container w3-dark-grey w3-padding-32"> 
 
    <div class="w3-row"> 
 
     <div class="w3-container w3-third"> 
 
     <h5 class="w3-bottombar w3-border-green"><i class="fa fa-user" aria-hidden="true"></i> Manage users</h5> 
 
     <button type="button" onclick="google.script.run 
 
      .Deleteuser()" >Delete</button> 
 

 

 
    </div> 
 
</div> 
 
</div> 
 

 
    <!-- End page content --> 
 

 

 

 
</body> 
 
</html>

+0

"google"が定義されていないので、もちろんここでは機能しません。 google.script.runは、ページがHtmlServiceによって提供されている場合にのみ動作します。あなたはそこでそれをテストしましたか?どのようなエラーがありましたか? – FTP

答えて

0

おそらく成功とエラーのハンドラを含んでいます。このドキュメントでは、この方法について説明します。 https://developers.google.com/apps-script/guides/html/reference/run

「削除」をメインの削除ユーザークラスに追加することはどうですか?エラーをクライアントに返すか、エラーを記録することができます。別のノートで

try { 
    AdminDirectory.Users.remove(email); 
} catch(e){ 
    Logger.log(e) 
    return e 
} 

、スクリプト「AdminDirectory.Users.remove(電子メール)は、」唯一のG-スイートの管理者権限を持つアカウントで実行され、あなたは両方で、ディレクトリのAPIをオンにしている場合スクリプトとそれに付属のAPIコンソールに表示されます。

管理者権限には、管理者に属するスクリプトにdelete関数を追加し、そのスクリプトにGET要求を送信する方法があります。

関連する問題