3

私はグーグルスクリプトでウェブアプリを開発し、これを私のgsにコーディングしました。

var email = Session.getActiveUser().getEmail();
Logger.log(email);
// then do something to render the Email address on the page

スクリプトを公開した後、別のアカウントでログインしてスクリプトを実行します。

次に、ページに次のように表示されます。

このアプリケーションは、Googleではなく別のユーザーによって作成されました。

このアプリケーションは、次の個人情報にアクセスできます:電子メールアドレス。

しかし、それでもログには何も表示されず、ページには何も表示されません。

わからない...

4

5 に答える 5

3

Session.GetActiveUser()のリファレンスドキュメントには明示的に記載されていませんが、私のテストでは、getActiveUser()にアクセスするには、WebアプリにアクセスするユーザーとしてWebアプリを実行する必要があることが確認されました。以下のコードとここで説明するロギングライブラリを使用しました。

アプリケーションのユースケースによっては、アクティブなユーザーの電子メールをキャプチャするための集中型ScriptDBインスタンスを含むライブラリを作成できる場合があります。次に、プライベートスプレッドシートと同じscriptDBライブラリで動作する別のプロジェクトを作成します。

var LOG_FILENAME = 'your-log-doc'
var LOG_PATH = 'folder/subfolder/third-folder'


function doGet() {
  //Change variable above to a good path and filename for you
  var x = LogLibrary.InitializeLogging(LOG_PATH, LOG_FILENAME)
  Logger.log(x)

  var email = Session.getActiveUser().getEmail();
  Logger.log("Start email logging")
  Logger.log(email);
  LogLibrary.fnSaveLog()  //Write the save and flush the logger content

  // then do something to render the Email address on the page
  var HTMLToOutput = '<html><h1>A header</h1><p>' + email + '</p></html>';
  return HtmlService.createHtmlOutput(HTMLToOutput);
}
于 2013-03-29T01:04:08.357 に答える
1

私は同じ問題についての解決策を探しているので、いくつかのテストを行いました、そして私はそれを結論付けます:

  • 機能が動作するようにするには、Webアプリを「Webアプリにアクセスするユーザー」として実行する必要があります。そのためには、Webアプリにアクセスするユーザーとして実行できるようにWebアプリを構成する必要があります。
  • 注:ユーザーは、スクリプトがメールの送受信も行うドライブにアクセス、編集、および管理することを許可するよう求められます(これは、ほとんどのcorseユーザーにとっては明らかではありません)。

結局、それはあなたがそれを何のために使うかによる。

そしてグーグルのドキュメントではこの問題について何も言及されていません!!

メールアドレスをテキストとして返し、スクリプトとして、またはgoogle htmlフォームで使用する単純な関数の場合など:

function OnOpen(){
var emailName = Session.getActiveUser().getEmail();
var optionsHtml =  emailName.toString().split(",");

     return optionsHtml;
}
于 2020-06-13T11:04:51.423 に答える
0

ガス問題フォーラム(グーグル)を見てください。それは何度も対処されました。基本的に、ドメイン外のユーザーを期待している場合は、アプリにアクセスするユーザーとして実行するように設定する必要があります。その設定を変更すると、必要な権限に応じてアプリが破損する可能性があります

于 2013-03-30T05:12:09.827 に答える
0

アプリが2013年6月25日より前のものであり、getEffectiveUser()またはgetUser()メソッドを使用している場合は、新しい承認エクスペリエンスのためにスクリプトを再承認する必要があります。

ここでドキュメントを見ることができます。

https://developers.google.com/apps-script/scripts_google_accounts#understandingPermissions

また、デプロイする前にスクリプトを実行することを忘れないでください。

于 2013-10-02T14:11:23.573 に答える
0

ユーザーの電子メールにアクセスする場合は、"https://www.googleapis.com/auth/userinfo.email"電子メールアクセスポリシーがに追加されていることを確認してください。appsscript .json

ここでドキュメントを見ることができます。

https://developers.google.com/apps-script/reference/base/session#authorization

于 2021-06-01T16:58:44.230 に答える