みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。
超初心者向けGoogle Apps Scriptを学ぶシリーズ、Botの作成を目指しております。
が、まだBotっぽいこと全然出てきていませんけどね。
前回の記事はこちらです。
開発やデバックで大変お世話になる、console.logによるログ出力の方法についてお伝えしました。
さて、GASを使用するケースとしては、スプレッドシートを使いたいというニーズがあることが多いと思います。
ただ、GASでスプレッドシートを操作しようとすると、初回実行時に「承認が必要です」というダイアログが出てきてびっくりすると思います。
特に無料のGmailアカウントを使っている場合は…余計びっくりします。
今回は、それが出てきてもびっくりしないように、スプレッドシートでメッセージダイアログを表示する場合を例に、Google Apps Script実行時のアクセス許可の承認についてお伝えしていきます。
では、行ってみましょう。
メッセージダイアログを表示する方法
では、スプレッドシートにメッセージダイアログを表示する方法をお伝えしていきます。
Browser.msgBoxでメッセージを表示する
スプレッドシートのコンテナバインドスクリプトを使っているときのみ、Browser.msgBoxメソッドで、スプレッドシート上にメッセージダイアログを表示することができます。
なお、他の方法としてスプレッドシート・ドキュメント・フォーム・スライドのコンテナバインドスクリプトであれば、Uiクラスを使ってメッセージダイアログを表示する方法もありますので、ご興味あればチャレンジしてみてください。
メッセージダイアログを表示するスクリプト
で、今回は以下のスクリプトを作成しました。
function myFunction() { Browser.msgBox('Hello GAS!'); }
実行してみましょう。
さて、何か起きるでしょうか?
「承認」とは何か
メッセージダイアログにかかわらず、GASからGoogleのアプリケーションを操作しようとしたときには「承認」が必要になります。
GASのスクリプトも、スプレッドシートも、Googleのクラウド上にありますよね。
つまり、同じブラウザから操作していても、Googleから見たら、そのスクリプトが本当にそのスプレッドシートをいじってよいかどうかはわからないのです。
なので、初回実行時にスクリプトが、スプレッドシートにアクセスして良いかを、「承認」する作業が必要になります。
基本は、ダイアログの手順に従えばいいのですが、無料のGmailアカウントを使っている場合はちょっと注意が必要です。
それについて、以降解説をしていきます。
Google Workspaceアカウントを使っている場合
「承認が必要です」ダイアログ
Google Workspaceアカウントを使っている場合であれば、まず以下の「承認が必要です」ダイアログが出現します。
承認が必要です
このプロジェクトがあなたのデータへのアクセス権限を必要としています。
とありますね。
「GAS Bot」があなたの(スプレッドシートの)データにアクセスしてよいか承認が必要です、ということですね。
アカウントの選択
「権限を確認」をクリックすると、以下「アカウントの選択」ウィンドウが開きますので、スプレッドシートの持ち主(オーナーといいます)であるアカウントを選択します。
リクエストの許可
続いて別のウィンドウが表示されます。
スクリプト「GAS Bot」がスプレッドシートへのアクセスをリクエストしていますよ、許可していいですか?という意味ですね。
「許可」をすれば、無事に承認されたことになります。
メッセージダイアログの表示
これでようやく、スクリプトが実行されます。
スプレッドシートのタブを開くと、以下のようにメッセージダイアログが開かれているはずです。
無料のGmailアカウントを使っている場合
無料のGmailアカウントを使っている、つまり「~@gmail.com」のアカウントを使っている場合、この「承認」のフローが少し異なり、より「びっくり」させられます。
このアプリは確認されていません
Google Workspaceの場合の「アカウントの選択」までは同じフローですが、その後に、以下のようなウィンドウが表示されます。
「このアプリは確認されていません」
このアプリは Google による確認が済んでいません。よく知っている信頼できるデベロッパーの場合に限り続行してください。
…だそうです。
うっかり「安全なページに戻る」をクリックしたくなりますが、ダメです。それだと先に進めません。
ちっちゃいですが「詳細」をクリックが正解です。
安全ではないページに移動する
すると、ウィンドウの下の隠れていた部分が表示されるようになります。
また、クリックしづらいですが「メッセージダイアログ(安全ではないページ)に移動」をクリックしてください。
これでようやく「ようこそ」ウィンドウが表示されますので、「許可」をすることで承認の作業が完了します。
無料のアカウント、ちょっと嫌がらせ受けてますかね。
まとめ
以上、Google Apps Scriptでスクリプト実行時の「承認」びっくりしないためのアレコレについてお伝えしました。
クラウドで提供されているGASならではの手順と言えますね、面倒ですが安全にGASを利用するために必要なものと理解ください。
また、無料のGmailアカウントを使っている場合は、より面倒でびっくりさせられますが、大丈夫です。使えますので。
ただ、Google Workspaceのほうが色々と優遇されていますし、何より安全にアカウント管理が可能ですから、企業などではGoogle Workspaceを利用するようにしましょう。
次回は、いよいよスプレッドシートを操作していきたいと思います。
どうぞお楽しみに!
連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ
Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。- 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
- 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
- 【初心者向けGAS】プログラミングに必須の変数&定数の使い方とデータ型について
- 【初心者向けGAS】ログを表示するconsole.logの使い方とテンプレート文字列
- 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
- 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
- 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法
- 【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
- 【初心者向けGAS】for文を使ったスプレッドシートの繰り返しの超基本
- 【初心者向けGAS】条件分岐をするif文の使い方の超基本
- 【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎
- 【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~
- 【初心者向けGAS】スプレッドシートのセル範囲を行数・列数を使って取得する
- 【初心者向けGAS】スプレッドシートのセル範囲をクリアするいくつかの方法
- 【初心者向けGAS】Google Apps ScriptでWeb APIを活用するための基礎知識
- 【初心者向けGAS】面倒なことはライブラリに任せよう!その概要と追加の方法
- 【初心者向けGAS】Chatworkのマイチャットにメッセージを送る最も簡単な例
- 【初心者向けGAS】Google Apps Scriptで別の関数を呼び出すfunctionの書き方
- 【初心者向けGAS】時限式のイベントトリガーを設置して決まった時刻にBotを送信する方法
- 【初心者向けGAS】プロパティストアの概要とスクリプトプロパティの編集方法
- 【初心者向けGAS】スクリプトプロパティを操作してそのデータを取り出す方法
- 【初心者向けGAS】スプレッドシートのセル範囲の値を二次元配列として取得して取り扱う方法
- 【初心者向けGAS】Chatworkのメッセージ記法でBot送信するメッセージを装飾する方法
- 【初心者向けGAS】Google Apps Scriptのドキュメンテーションコメントの書き方