質問するログイン新規登録
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

474閲覧

google apps scriptで作ったWebアプリにアクセス制限を行いたい。

Flutter_kun

総合スコア28

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

2クリップ

投稿2023/11/13 15:33

編集2023/11/13 15:35

0

2

実現したいこと

もし指定したgoogleアカウントでアクセスしたユーザー以外がアクセスした場合、
アクセス制限をしたい。

前提

下記のようなコードを書きました。
しかしデプロイしたアカウント以外ではアクセスできませんでした。
指定したアカウントでアクセスしても「アクセス権限がありません」と表示されます。

function doGet() { //アクセス許可するgoogleアカウント var allowedEmails = ["xxxx1@gmail.com", "xxxx2@gmail.com","xxxx3@gmail.com"]; // アクセスしたユーザーのGoogleアカウントを取得 var LOGIN_USER = Session.getActiveUser().getEmail(); if (!allowedEmails.includes(LOGIN_USER)) { return HtmlService.createHtmlOutput('<p>アクセス権限がありません<p>); } }

デプロイ時の設定

  • 次のユーザーとして実行
    「自分 (xxxx1@gmail.com)」

  • アクセスでいるユーザー
    「Googleアカウントを持つ全員」

試したこと

var htmlContent ='<p>アクセスしたユーザーのメールアドレス: ' + LOGIN_USER + '</p>';

これでメールアドレスが取得できているか試したところ、
空白が表示されました。

おそらくうまく取得できていません。
原因はこの部分かと思います。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

try_Sunlight

2023/11/14 08:25 編集

コードのコピーミスでなければ、まず('<p>アクセス権限がありません<p>)のところの最後の「'」が抜けていますね。 ↓ ('<p>アクセス権限がありません<p>') 本来のコードの方では正しく入っていますか? 【追記】すみません、「アクセス権限がありません」の表示がされるという事は、シンタックスエラーは生じていない=本来のコードでは抜けていないって事ですよね。余計な指摘をしてすみません、ご放念下さい。
Flutter_kun

2023/11/14 13:12

返信ありがとうございます 本来のコードには正しく入っていました
guest

回答1

0

ベストアンサー

自分ではなくデベロッパーによってデプロイされたウェブアプリなど、そのユーザーの承認なしでスクリプトを実行できるコンテキストでは使用できません。
とドキュメントにありますが、GASの実行ユーザーの情報を取得するにはデプロイ時の実行ユーザー設定を「自分」ではなく「アクセスしているユーザー」にする必要があります。

またこのときスクリプトオーナー以外のGoogleアカウントにログインしているChromeからアクセスすると偶に「Google ドキュメント内でエラーが発生しました」とでてきて動作しないことがありますがこちらの原因や解決方法はよくわかりません…
キャッシュやサイト設定を削除するとアクセスできるようになることもありますが直らないこともあります。(私はAndroidのChromeでこの現象に遭遇し、キャッシュどころかアプリデータを全削除しましたが改善しませんでした。)
対処的ですがChrome以外のブラウザを使ったりシークレットモードでアクセスすると動作します。

投稿2023/11/16 10:53

編集2023/11/16 10:57
kairi003

総合スコア1332

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問