今回と次回の投稿では、Google Apps Scriptでその他のG Suiteサービスの操作を行う際に必要なアクセス許可について説明します。Googleアカウントには無料のGoogleアカウントと有料のGoogle Workspaceアカウントの2種類がありますが、アカウントの違いによって表示される画面が違いますので、ご自身のアカウント種類の方法を確認して下さい。
本投稿では、無料版のGoogleアカウントでスクリプトにアクセス許可を付与する方法を説明します。
スコープについて
Google Apps Scriptでは、スクリプトが勝手に自分のGoogleサービスにアクセスが出来ないように、スコープと呼ばれるアクセス範囲が設定されています。
例えば、Google Apps ScriptでGmailの機能にアクセスしたり、ドライブのファイルにアクセスしたりする場合、初回にプログラムを実行する際にスクリプトにアクセス許可を与えないとスクリプトはデータにアクセスすることは出来ません。これはセキュリティを担保するためのもので、スクリプトが許可なくデータにアクセスしないようにするための機能と考えて頂ければ良いかと思います。
スマホやタブレットのアプリをインストールした時にも同じような形でアプリに利用する端末の機能やデータにアクセス許可を出すと思うのですが、そのGoogle Apps Script版と考えて頂ければ少しはイメージがしやすくなるかもしれません。
スクリプトへの許可付与の手順
さて、今回は下記のコードを使ってアクセス許可を出し方を学んでみます。
サンプルコード
//スクリプトにGmailへのアクセス許可を付与するためのサンプルコード
function myFunction() {
let recipient = Session.getActiveUser()
.getEmail();
let subject = "subject";
let body = "body";
MailApp.sendEmail(recipient, subject, body);
}
今回はシンプルに自分のメールアドレスにメールを送るアプリを作成しました。
とりあえず、『 初回アクセス時にスクリプトに許可を与えるサンプルコード 』にアクセスして、『 ▷実行 』ボタンをクリックしてみてください。
初回でこのプログラムを実行すると、確認のダイアログが表示されますので、これから説明する方法に従って手順を進めて下さい。
実行ボタンをクリックすると、次のような画面になります。
このダイアログが表示されたら『許可を確認』をクリックします。すると、新しいダイアログが表示されます。
ここでは、アクセス許可を出すアカウントを選択します。通常であれば自分が今ログインしているアカウントを選択して下さい。次に表示される文章は少し不安に感じるかもしれませんが、特に心配することはありませんので安心して手順を進めて構いません。
上記画面では、Googleによる確認が行われていないプログラムを初めて実行する時に表示されるダイアログです。通常ご自身で使用するプログラムであれば、特にGoogleによる確認を行わなくても問題はありません。
このダイアログを表示させないようにする方法についてはまた別の機会に投稿をしようと考えていますので、今回は割愛します。
ダイアログ左下にある『詳細』をクリックして下さい。クリックすると、ダイアログの内容が少し追加されますので、下にスクロールして下さい。
『ファイル名(安全ではないページ)に移動』というリンクがありますので、ここをクリックします。
今回のプログラムでは、Gmailへのアクセス許可が必要なので、アクセスリクエストはGmail関係へのアクセス許可を求められます。ちなみに、今回のプログラムではメールを送信する機能のみ使用していますが、アクセスリクエストは『メールの閲覧、送信、削除、管理』に対して行われ、送信以外の部分についてもリクエストされます。これは、スコープがそこまで細かく分けられていないためで、Gmailの機能を利用する時にはプログラムで何をするかに関わらず先述の『メールの閲覧、送信、削除、管理』へのアクセスリクエストが行われます。
プログラムでGoogleドライブの操作をするときにも上記と同じ理由から、プログラムで利用する部分以外のアクセスもリクエストされますが、これはGoogle側の仕様ですので、深く考えずに許可ボタンをクリックしましょう。
ここまで出来たら、後は実行ボタンを再度クリックするだけです。
プログラムの処理が終了したら、指定したアドレスの受信トレイを覗いてみましょう。無事にメールが受信できていればアクセス許可は無事に付与出来ているはずです。
以上が無料のGoogleアカウントにアクセス許可を出す方法です。
まとめ
一度許可を出せば2回目以降はアクセス許可を出す必要我はありません。ただし、Gmailのアクセス許可を出した後に新たにプログラムを追加して他のGoogleサービスの操作を必要とするコードを書いた時には次回のプログラム実行時に再度アクセス許可を求められます。また、アクセス許可はプログラム単位で出す必要がありますので、新しいプログラムを作成した場合にも同じようにアクセスリクエストがされますので、今回と同じ手順で許可を出す必要があります。
実行する内容は今回とほとんど変わりませんが、ダイアログの表示が少し違く、無料アカウントよりも手順が簡略化されていので、Google Workspaceアカウントに移行した時でも驚かないように。