どうも、こっこです。
今回はGAS(GoogleAppScript)で「このアプリはブロックされます」と表示される場合の対処法について解説していきます。
今まではなセキュリティの確認ページが表示され、「詳細」から「安全ではないページに移動」するだけでどうにか対処できていたものの、最近Googleでのセキュリティ強化なのか対応方法が変わってきました。
今回はあくまで一例として対応ができる方法の紹介をさせていただきますので、よければ参考にしてみてください。
今回の問題点
今回はGoogleフォームで回答してもらった回答結果がスプレッドシートに反映され、その回答結果と内容をLINEグループにLINENotifyで通知を送るというスクリプトを作成していました。
今まで何度も行ってきた作業であり、スクリプト自体はコピペしトリガーの設定をしてテストしようとしたところで問題が発生しました。
スクリプトのコピペが完了し、一度「実行」ボタンをクリックすることで画面真ん中に「承認が必要です」とポップアップが表示されます。これは今まで通りなので「権限を確認」をクリックします。
その後別タブか新しいウィンドウで開かれる「アカウントの選択」にて使用したいGoogleアカウントを選択します。ここもいつもどおりの作業です。
アカウントを選択することで「このアプリはブロックされます」という表示が出ました。
今までであればこの段階で「このアプリはGoogleで確認されていません」という表示とともに、画面左下に「詳細」というリンクが表示されます。その「詳細」をクリックして表示される「アプリ名(安全ではないページ)に移動」というリンクをクリックすることで処理が完了していました。
ただ今回の問題のように「詳細」が表示されないとなるとその後の対応が一切できずに困ってしまいました。
やってみたことと結果
ChatGPTに聞いてみる
今回の問題に対する対応方法をChatGPTに聞いてみました。
- アクセス許可の再確認
- 未確認アプリの使用を許可する
- スクリプトプロジェクトのOAuth認証設定
- 他の解決策: 認証済みアプリとして公開
- スプレッドシートの共有と権限の確認
このような回答結果で各項目ごとに具体的な対応方法や作業の手順を説明してくれているものの、どれも解決には至りませんでした。
提案はしてくれているが情報が古いのか各設定画面で提示してくれている手順の表示が見つからなかったり、だいぶ面倒な作業が発生するためこれらの手順は諦めました。
クッキーを削除してみる
2021年の記事にはなりますが今回の問題に対する原因と対応方法をまとめてくれている記事が見つかりました。
参考記事はこちら
ただこちらのサイトで説明されているクッキーの削除や一定時間待機という方法は私の場合は解決には至りませんでした。
具体的な対応方法
では私なりに解決できた手順をご紹介します。今回はスプレッドシートのAppScriptでの作業方法になります。
共有権限の確認をする
画面右上の「共有」をクリックして共有権限を確認します。
今まではこの画面の下部「一般的なアクセス」で「リンクを知っている全員」で「編集者」になっていれば通常どおりの作業ができていました。
しかし、この画面の「アクセスできるユーザー」に自分のGoogleアカウントが入っていないと先程のエラーが出るようでした。
別Googleアカウントをユーザー追加
先ほどまで操作していたGoogleアカウントはブロックされてしまっているので、別のGoogleアカウントで対応を進めていきます。「ユーザー、グループ、カレンダーの予定を追加」の検索ボックスに別GoogleアカウントのGmailアドレスを入力します。
アカウントを追加したら「通知」はチェックを外して右下の「共有」ボタンをクリックします。
これで共有権限一覧の画面にて「アクセスできるユーザー」にこれから操作を行いたいGoogleアカウントが追加されていれば準備OKです。
あとは今まで通りの手順
ここまでくればあとはいつもどおりの手順です。
「Apps Script」のエディタにてスクリプトを追加し、実行したいメソッドを選択して「実行」をクリックしました。
そうすると先程のように「承認が必要です」のポップアップが表示されますので、右下の「権限を確認」をクリックします。
次も同じく「アカウントの選択」が表示されますので対象のGoogleアカウントをクリックします。
そうすると「このアプリはGoogleで確認されていません」という画面とともに画面左下に「詳細」が現れますのでクリックします。
「詳細」をクリックすることでさらに左下に「プロジェクト名(安全ではないページ)に移動」というリンクが表示されますので、そのリンクをクリックします。
「プロジェクト名がGoogleアカウントへのアクセスをリクエストしています」というデカデカとした表示の画面に来たら、右下の「許可」ボタンをクリックします。
少し読み込みをするとApps Scriptのエディター画面に戻ってきて、Googleアカウントが認証されたためスクリプトが実行できるようになりました。
注意点
この別Googleアカウントを追加する流れにおいて、すでに「このアプリはブロックされます」の表示が出てしまったGoogleアカウントは別のプロジェクトでもブロックされることがわかりました。
一度でもブロックされてしまったら数日程度時間を置くか、どうにかクッキーやキャッシュを削除してクリーンな状態でやり直してください。
まとめ
いかがだったでしょうか?
今回はGASにおいてGoogleアカウントが認証できずブロックされてしまったときの対処法について解説してきました。
まずはスプレッドシートやドキュメント等で共有権限をしっかり付与してから権限の承認作業が必要になります。
スプレッドシート等のGoogleのサービスに頼ることが多くなっているので、これくらの作業はもう少し柔軟に対応してもらいたいですね。セキュリティ強化するのはいいけれど、なんとか優しく操作できるようにしてほしいです。
ではまた!