私はGoogle App ScriptとGoogle Spreadsheet onOpen()トリガーを使用しています。私はGoogleスプレッドシートにログインしているユーザーをロックしています。GoogleアプリケーションスクリプトのSession.getActiveUser()はクロスドメインユーザーでは機能しません
フォーラムで見つけたクロスドメインのメールIDをロギングしないという制限があります。私は、スプレッドシートの所有者だとそれだけで私たちの会社のドメインの電子メールIDを記録します
1]:
function onOpen(e)
{
try
{
var ui = SpreadsheetApp.getUi();
ui.createMenu('Action')
.addItem('Add Data', 'addData')
.addToUi()
var sheet =SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Login Details");
sheet.appendRow([Session.getActiveUser().getEmail(),new Date()]);
}
catch(e)
{
Logger.log(e);
}
}
つの観測開く時から()機能:ここで
は同じのためのコードです。 (スプレッドシートの自動onOpen())
2]スプレッドシートの制限付きスクリプトを開いてonOpen()を実行すると、他のドメインからログオンしたユーザーがログに記録されます。
なぜ同じ理由がありますか?また、ユーザーがクロスドメインで回避する方法はありますか?
あなたは、どのようなフォーラム「私は、フォーラムで見つけクロスドメインの電子メールIDをロギングない」とはどういう意味ですか?また、2回目の観察では、ログインしたユーザーがログに記録されていると言いますが、問題は何ですか?それはロギングかロギング電子メールIDですか?はい、ログインしたユーザーのみを取得します。スクリプトに権限を与えたユーザーを取得する場合は、getEffectiveUser()を使用します。私が言及した上記の点について説明してください。 –
@ShyamKansagra:On StackOverflow&[link](https://developers.google.com/apps-script/reference/base/session#getActiveUser())私のドメインはabc.comで、クライアントドメインはxyz.comで、abc.comでは機能が正常に機能しています。私は[email protected]でログインしたときに、「ログインの詳細」ワークシートにユーザー名を記録します。しかし、もし私が[email protected]でログインしていたら、空のユーザー名を取得します。私が[email protected]でログオンし、スクリプトエディタを開いてonOpenを実行すると、client @xyz.comとして電子メールIDが記録されますが、直接スプレッドシートを開くと、それは表示されません。 –
[email protected]でトリガーを設定するのを忘れてしまったのかもしれません....あなたのドメインでonOpen()のトリガーを設定している場合は同様に、クライアントのIDにトリガーを設定しなければならないコードをコピーしないでください。 –