Google Apps Scriptで作成された無料のWebアプリを公開したいのですが、このWebアプリを誰が使用しているか(少なくともユーザーのメールアドレス)を知りたいです。アプリは、アプリにアクセスするユーザーとして実行され、誰でも利用できます。
ScriptDbを使用してSession.getUser()。getEmail()を保存する方法は知っていますが、このアプリではこのアプローチを使用していません。
これを行う他の方法はありますか?
ありがとう、ファウスト
Google Apps Scriptで作成された無料のWebアプリを公開したいのですが、このWebアプリを誰が使用しているか(少なくともユーザーのメールアドレス)を知りたいです。アプリは、アプリにアクセスするユーザーとして実行され、誰でも利用できます。
ScriptDbを使用してSession.getUser()。getEmail()を保存する方法は知っていますが、このアプリではこのアプローチを使用していません。
これを行う他の方法はありますか?
ありがとう、ファウスト
ユーザーのメールはどこにでも保存でき、都合のよい場所に保存できます。気に入らない場合は、たとえばScriptDb
でそれを行います。Spreadsheet
SpreadsheetApp.openById('your-spreadsheet-key').getSheetByName('Sheet1').
appendRow([new Date(), Session.getActiveUser().getEmail()]);
明らかに、このスプレッドシートは「リンクを持っている人」と共有する必要があります。または、Googleフォームを設定し、それを使用して情報を送信することもできます。これはパブリックAPIではありませんが、を使用して行うのはかなり簡単ですUrlFetch
。
現在の webapp が urlfetch を使用して、アクティブなユーザーのメールをスプレッドシートなどに静かに投稿する別の webapp を作成することができます。
応援アプリ。資格情報の下で匿名アクセスで実行される webapp として公開します。この Web アプリケーションの URL を取得してください。これは、メインの webapp で使用されます。
function doGet(e) {
var user = e.parameter.user;
SpreadsheetApp.openById('id of ss where user emailwill be saved').getSheets()[0].getRange('A1').setValue(user);
}
あなたのメインのウェブアプリの使用では、次のコード行
var user = Session.getActiveUser();
UrlFetchApp.fetch('https://script.google.com/macros/s/xxxxxxxxxxx/exec?user='+user); //URL is the supporting webapp url with parameter