質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

解決済

GoogleAppsScriptのdoPost(e)内でhtmlに変数を渡す方法

fmlyimmr
fmlyimmr

総合スコア3

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

2回答

0評価

0クリップ

354閲覧

投稿2022/08/06 07:52

編集2022/08/06 20:02

前提

Google Apps Scriptでホームページを作成しております。
1枚目のホームページからPOSTで送信したデータをGAS内で処理し、
2枚目のホームページを表示したいと考えています。

GAS内の変数を2枚目のホームページ内で利用したいのですが、エラーが発生しました。

実現したいこと

  • [1 ] 2枚目のホームページで変数の中身が表示される

該当のソースコード:GoogleAppsScript

GoogleAppsScript

function doPost(e) { //tmpAryには文字列が入ります var tmpAry = String(e.parameter.value).split(','); // ①-1 script.google.com で接続が拒否されました return HtmlService.createHtmlOutputFromFile("output"); // ①-2 TypeError: HtmlService.createHtmlOutputFromFile(...).evaluate is not a function(行 61、ファイル「コード」) return HtmlService.createHtmlOutputFromFile("output").evaluate(); // ②-1 outputのページが開くが、<?!=user_id?> と表示 return HtmlService.createHtmlOutputFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); //②-2 TypeError: HtmlService.createHtmlOutputFromFile(...).setXFrameOptionsMode(...).evaluate is not a function(行 67、ファイル「コード」) return HtmlService.createHtmlOutputFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL).evaluate(); // ③-1 outputのページが開くが、<?!=user_id?> と表示 var template = HtmlService.createHtmlOutputFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); template.user_id = tmpAry[1]; return template; // ③-2 TypeError: template.evaluate is not a function(行 77、ファイル「コード」) var template = HtmlService.createHtmlOutputFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); template.user_id = tmpAry[1]; return template.evaluate(); // ④-1 script.google.com で接続が拒否されました。 var template = HtmlService.createHtmlOutputFromFile('output'); template.user_id = tmpAry[1]; return template; // ④-2 TypeError: template.evaluate is not a function(行 80、ファイル「コード」) var template = HtmlService.createHtmlOutputFromFile('output'); template.user_id = tmpAry[1]; return template.evaluate(); // ⑤-1 スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。 return HtmlService.createTemplateFromFile("output"); // ⑤-2 ReferenceError: user_id is not defined(行 7) return HtmlService.createTemplateFromFile("output").evaluate(); // ⑥-1 TypeError: HtmlService.createTemplateFromFile(...).setXFrameOptionsMode is not a function(行 85、ファイル「コード」) return HtmlService.createTemplateFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); // ⑥-2 TypeError: HtmlService.createTemplateFromFile(...).setXFrameOptionsMode is not a function(行 96、ファイル「コード」) return HtmlService.createTemplateFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL).evaluate(); // ⑦-1 TypeError: HtmlService.createTemplateFromFile(...).setXFrameOptionsMode is not a function(行 90、ファイル「コード」) var template = HtmlService.createTemplateFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); template.user_id = tmpAry[1]; return template; // ⑦-2 TypeError: HtmlService.createTemplateFromFile(...).setXFrameOptionsMode is not a function(行 95、ファイル「コード」) var template = HtmlService.createTemplateFromFile('output').setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); template.user_id = tmpAry[1]; return template.evaluate(); // ⑧-1 スクリプトが完了しましたが、返された値はサポートされている戻り値の型ではありませんでした。 var template = HtmlService.createTemplateFromFile('output'); template.user_id = tmpAry[1]; return template; // ⑧-2 script.google.com で接続が拒否されました。 var template = HtmlService.createTemplateFromFile('output'); template.user_id = tmpAry[1]; return template.evaluate(); }

該当のソースコード:output.html

html

<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <?!=user_id?> <?=user_id?> <?user_id?> </body> </html>

試したこと

①-1 ~ ⑧-2まで総当たりで試しましたが、できませんでした。
doPost(e)ではなく、doGet(e)であれば、⑧-2で変数の受け渡しが可能でした。

ご指導やご指摘頂けますと幸いです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。