GAS|「現在、ファイルを開くことができません」の画面

    結論  :   原因としてよくあるのは、次の2つ。

 

1.マルチアカウント状態になってしまっている。

 →いったんすべてのアカウントからログアウトし、利用するアカウントのみでログインする。

2.doPost において、webページを return してしまっている。

 →何も return しない。または、正しいやり方で return する。

1. いつ生じるのか??

次のような場合に、見られることが多いです。

  1. GAS エディターを開こうとしたとき。
  2. デプロイしたwebアプリのURLから、doGet または doPost の処理を実行しようとしたとき。

2. 原因候補① マルチアカウント状態になってしまっている。

マルチアカウントとは、お使いのブラウザ上で、複数のgoogleアカウントでログインしてしまっている場合です。

google検索ページなどで、次のような手順で確認できます。

こうなっていると、GASのエディターを開こうとした際などに、うまく開くことができずに、上記の画面が出てしまいます。

対処法

まず、すべてのアカウントからログアウトし(下図)、その後、利用したいアカウントのみでログインします。

3. 原因候補② doPost において、webページを return してしまっている。

doGet() 関数の処理において、GASで生成したwebページを returnする場合があると思います。

しかし、doPost() 関数でこれをしてしまうと、エラーとなり、上記の画面が表示されます。

//単純なテキストののwebページを返す。
return ContentService.createTextOutput("処理が完了しました。");
//またはindex.htmlファイルのページを返す。
return HtmlService.createTemplateFromFile("index").evaluate();

対処法

doPost() 関数では、webページを返すことはできません。何も返さないか、何か返したい場合は、次のようにしましょう。(次は、オブジェクトを返す場合です)

//オブジェクトを準備
const obj = {
    status: "ok",
    message: "処理が完了しました。"
}
//JSON変換したオブジェクトを返す。
return ContentService
    .createTextOutput()
    .setMimeType(ContentService.MimeType.JAVASCRIPT);
    .setContent(JSON.stringify(obj));

ちなみにこの方法は、doGet() 関数でも同様に使えます!

Cloud Tree

Cloud Treeは中小企業向けDX・システム制作会社です。

中小企業DXツールであり、コストパフォーマンスが高いZohoを当社でも採用しております。

システムづくり、業務効率化、Zohoにご興味をお持ちの方は、問い合わせボタンまたはメニューよりお声がけください。

執筆者 佐伯 太翼

 


CloudTree所属


業務システム開発(iPhone, android, windows, mac)、DX推進支援、Zoho導入パートナー、GASシステムアプリ制作

 

________________

 現場の役に立つシステムを作る

 DX導入の負担を減らす

________________

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です