【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために


exclamation

photo credit: mag3737 Bang via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

超初心者向けGoogle Apps Scriptを学ぶシリーズ、Botの作成を目指しております。

が、まだBotっぽいこと全然出てきていませんけどね。

前回の記事はこちらです。

【初心者向けGAS】ログを表示するconsole.logの使い方とテンプレート文字列
Google Apps Scriptの超入門シリーズ、GASプログラミングの基礎を学んでいっております。今回はログを表示するconsole.logの使い方とテンプレート文字列についてお伝えします。

開発やデバックで大変お世話になる、console.logによるログ出力の方法についてお伝えしました。

さて、GASを使用するケースとしては、スプレッドシートを使いたいというニーズがあることが多いと思います。

ただ、GASでスプレッドシートを操作しようとすると、初回実行時に「承認が必要です」というダイアログが出てきてびっくりすると思います。

特に無料のGmailアカウントを使っている場合は…余計びっくりします。

今回は、それが出てきてもびっくりしないように、スプレッドシートでメッセージダイアログを表示する場合を例に、Google Apps Script実行時のアクセス許可の承認についてお伝えしていきます。

では、行ってみましょう。

スポンサーリンク

メッセージダイアログを表示する方法

では、スプレッドシートにメッセージダイアログを表示する方法をお伝えしていきます。

Browser.msgBoxでメッセージを表示する

スプレッドシートのコンテナバインドスクリプトを使っているときのみ、Browser.msgBoxメソッドで、スプレッドシート上にメッセージダイアログを表示することができます。

Browser.msgBox(メッセージ)

なお、他の方法としてスプレッドシート・ドキュメント・フォーム・スライドのコンテナバインドスクリプトであれば、Uiクラスを使ってメッセージダイアログを表示する方法もありますので、ご興味あればチャレンジしてみてください。

Class Ui  |  Apps Script  |  Google for Developers

メッセージダイアログを表示するスクリプト

で、今回は以下のスクリプトを作成しました。

function myFunction() {
  Browser.msgBox('Hello GAS!');
}

実行してみましょう。

さて、何か起きるでしょうか?

「承認」とは何か

メッセージダイアログにかかわらず、GASからGoogleのアプリケーションを操作しようとしたときには「承認」が必要になります。

GASのスクリプトも、スプレッドシートも、Googleのクラウド上にありますよね。

つまり、同じブラウザから操作していても、Googleから見たら、そのスクリプトが本当にそのスプレッドシートをいじってよいかどうかはわからないのです。

なので、初回実行時にスクリプトが、スプレッドシートにアクセスして良いかを、「承認」する作業が必要になります。

基本は、ダイアログの手順に従えばいいのですが、無料のGmailアカウントを使っている場合はちょっと注意が必要です。

それについて、以降解説をしていきます。

Google Workspaceアカウントを使っている場合

「承認が必要です」ダイアログ

Google Workspaceアカウントを使っている場合であれば、まず以下の「承認が必要です」ダイアログが出現します。

承認が必要ですダイアログ

承認が必要です
このプロジェクトがあなたのデータへのアクセス権限を必要としています。

とありますね。

「GAS Bot」があなたの(スプレッドシートの)データにアクセスしてよいか承認が必要です、ということですね。

アカウントの選択

「権限を確認」をクリックすると、以下「アカウントの選択」ウィンドウが開きますので、スプレッドシートの持ち主(オーナーといいます)であるアカウントを選択します。

アカウントを選択

リクエストの許可

続いて別のウィンドウが表示されます。

スクリプト「GAS Bot」がスプレッドシートへのアクセスをリクエストしていますよ、許可していいですか?という意味ですね。

「許可」をすれば、無事に承認されたことになります。

アカウントへのリクエストを許可

メッセージダイアログの表示

これでようやく、スクリプトが実行されます。

スプレッドシートのタブを開くと、以下のようにメッセージダイアログが開かれているはずです。

GASでメッセージダイアログを表示する

無料のGmailアカウントを使っている場合

無料のGmailアカウントを使っている、つまり「~@gmail.com」のアカウントを使っている場合、この「承認」のフローが少し異なり、より「びっくり」させられます。

このアプリは確認されていません

Google Workspaceの場合の「アカウントの選択」までは同じフローですが、その後に、以下のようなウィンドウが表示されます。

GAS実行時に「このアプリは確認されていません」

「このアプリは確認されていません」

このアプリは Google による確認が済んでいません。よく知っている信頼できるデベロッパーの場合に限り続行してください。

…だそうです。

うっかり「安全なページに戻る」をクリックしたくなりますが、ダメです。それだと先に進めません。

ちっちゃいですが「詳細」をクリックが正解です。

安全ではないページに移動する

すると、ウィンドウの下の隠れていた部分が表示されるようになります。

また、クリックしづらいですが「メッセージダイアログ(安全ではないページ)に移動」をクリックしてください。

安全ではないページに移動

これでようやく「ようこそ」ウィンドウが表示されますので、「許可」をすることで承認の作業が完了します。

無料のアカウント、ちょっと嫌がらせ受けてますかね。

まとめ

以上、Google Apps Scriptでスクリプト実行時の「承認」びっくりしないためのアレコレについてお伝えしました。

クラウドで提供されているGASならではの手順と言えますね、面倒ですが安全にGASを利用するために必要なものと理解ください。

また、無料のGmailアカウントを使っている場合は、より面倒でびっくりさせられますが、大丈夫です。使えますので。

ただ、Google Workspaceのほうが色々と優遇されていますし、何より安全にアカウント管理が可能ですから、企業などではGoogle Workspaceを利用するようにしましょう。

次回は、いよいよスプレッドシートを操作していきたいと思います。

【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
GASプログラミングの基礎を学ぶシリーズです。今回は、GASでスプレッドシートを操作していく際に知っておくべきオブジェクトとその基礎、SpreadsheetApp、アクティブなスプレッドシートの取得についてです。

どうぞお楽しみに!

連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ

Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。
  1. 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
  2. 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
  3. 【初心者向けGAS】プログラミングに必須の変数&定数の使い方とデータ型について
  4. 【初心者向けGAS】ログを表示するconsole.logの使い方とテンプレート文字列
  5. 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
  6. 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
  7. 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法
  8. 【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
  9. 【初心者向けGAS】for文を使ったスプレッドシートの繰り返しの超基本
  10. 【初心者向けGAS】条件分岐をするif文の使い方の超基本
  11. 【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎
  12. 【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~
  13. 【初心者向けGAS】スプレッドシートのセル範囲を行数・列数を使って取得する
  14. 【初心者向けGAS】スプレッドシートのセル範囲をクリアするいくつかの方法
  15. 【初心者向けGAS】Google Apps ScriptでWeb APIを活用するための基礎知識
  16. 【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法
  17. 【初心者向けGAS】Chatworkのマイチャットにメッセージを送る最も簡単な例
  18. 【初心者向けGAS】Google Apps Scriptで別の関数を呼び出すfunctionの書き方
  19. 【初心者向けGAS】時限式のイベントトリガーを設置して決まった時刻にBotを送信する方法
  20. 【初心者向けGAS】プロパティストアの概要とスクリプトプロパティの編集方法
  21. 【初心者向けGAS】スクリプトプロパティを操作してそのデータを取り出す方法
  22. 【初心者向けGAS】スプレッドシートのセル範囲の値を二次元配列として取得して取り扱う方法
  23. 【初心者向けGAS】Chatworkのメッセージ記法でBot送信するメッセージを装飾する方法
  24. 【初心者向けGAS】Google Apps Scriptのドキュメンテーションコメントの書き方

タイトルとURLをコピーしました