(license)みなさん、こんにちは!タカハシ(@ntakahashi0505)です。Scriptで備品購入申請を題材にワークフローを作成する方法をお伝えしています。Scriptで備品購入申請を題材にワークフローを作成する方法をお伝えしています。今回は、承認者に送られたGmail内のURLクリックで「承認」とするスクリプトの作り方をお伝えします。tonari-it.com2019.03.26メール内のURLをクリックすることでワークフローの承認ができるようにスクリプトを作成しました。今回は、Gmailで送るメッセージをHTMLメールでも送れるようにしていきたいと思います。いうことで、GASでGmailで送るメッセージをプレーンでもHTMLでも送れるようにする方法です。前回のおさらい前回までのおさらいを順を追って解説しますね。以下のような備品購入申請のフォームをGoogleフォームで作りました。こちら申請内容を入力して送信をすると、連携するスプレッドシートに、送信したデータが蓄積されます。承認者にGmailでメッセージが届くそれとともに、承認者に以下のようなメッセージがGmailで届きます。これは、フォーム送信時のトリガーによって、以下のスクリプトsendMessageが動作することによるものです。'備品購入申請がありました。'備品購入申請がありました。body);}URLクリックで承認の処理を行う承認者がGmail内のURLは公開しているWebアプリケーションのもので、クリックすると以下のdoGet関数が動作します。'以下の備品購入申請が承認されました。'以下の備品購入申請が承認されました。HtmlService.createHtmlOutput(html);}これにより、承認者には以下のWebページが表示されます。申請者にはGmailにより以下のメッセージが送信されます。プレーン版とHTML版の箇条書きテキストを返す関数さて、上記のスクリプトをご覧いただいて、かなり冗長な部分がありますよね。スクリプトsendMessageの3~7行目および17~21行目あたり、doGet関数の7~11行目、19~23行目および30~36行目あたりです。メール本文だったり、HTMLだったりするのですが、似たようなことをしているので統一しちゃいたいですよね...で、どうするかというと、プレーンもHTMLも作る関数を作って、好きなほうを都度チョイスできるようにしていきましょう。以下のような関数generateBodiesという関数を作りました。html};}備品購入申請の一行分のデータを配列で受け取って、その内容をプレーン版とHTML版の箇条書きにして返します。オブジェクトで返せば、複数の値も返せますもんね。GmailでHTMLメールを送るせっかくHTML版の箇条書きを作ったので、Gmailで送るメッセージもHTMLメールにしちゃいましょう。GmailAppのsendEmailメソッドですが、第4引数にはオブジェクト形式で様々なオプションを設定できます。オプション)このオプションに、htmlBodyというプロパティ名でHTML文字列を与えてあげればOK。相手先のメーラーがHTMLに対応していればHTML表示に、そうでなければ「本文」で指定したプレーンな文字列が表示されます。以上を踏まえて、スクリプトsendMessageと、doGet関数を整理しました。申請の通知メールをHTMLメール化まずはスクリプトsendMessageから。'以下の備品購入申請がありました。'<p>以下の備品購入申請がありました。'以下の備品購入申請がありました。'<p>以下の備品購入申請がありました。});}プレーン版とHTML版の両方の本文を作っているわりには、若干スッキリできたかなと思います。6行目でgenerateBodies関数を呼び出しています。HTMLメールが送れるようになったので、24行目の部分ですが、URLを剥き出しにせずに「こちら」にリンクを加えることができるようになりました。実際のメッセージの表示はこちらです。続いてdoGet関数です。'以下の備品購入申請が承認されました。'<p>以下の備品購入申請が承認されました。'以下の備品購入申請が承認されました。'<p>以下の備品購入申請が承認されました。HtmlService.createHtmlOutput(html);}こちらも、6行目にgenerateBodies関数を呼び出して、送信するメッセージをHTMLメールに変更しています。まとめ以上、GASでGmailで送るメッセージをプレーンでもHTMLでも送れるようにする方法をお伝えしました。今回、スクリプトを整理をしつつ、HTMLメールにも対応するようにしました。以降のシリーズで、ボタンでクリックできるようにしたいので、その布石でもありますね。次回ですが、URLを二つ用意して申請の「否認」もできるようにしていきたいと思います。Scriptで備品購入申請を題材にワークフローを作るシリーズをお送りしております。今回はGASのワークフローでURLのパラメータで承認・否認を切り替える方法をお伝えします。Scriptで操作できるアプリケーションはまさに「ワークフロー」を作成する上で必要なものが揃っています。いうことで、このシリーズでは初心者でも簡単に作れるワークフローの作り方について解説をしていきます。プランノーツ代表、コミュニティ「ノンプロ研」主宰。ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、執筆などをしております。→詳しいプロフィールはコチラ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ★フォロー頂ければ嬉しいです。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。Scriptで日付&時刻の便利ライブラリMoment.jsを使う方法についてお伝えしています。今回は日時の書式フォーマットを指定するformatメソッドの使い方です。Scriptで日付関連の処理を関数化する例とその際のポイントGASでGoogleカレンダーにまとめてイベントを登録できるツールを作成しています。Scriptで日付関連の処理を関数化する例とそのポイントについて解説をしていきます。ScriptGASでGoogleスライドのテキストボックスの文字列を取得する方法GASでGoogleスライドのプレゼンテーションを楽々作成するテクニックについてお伝えしています。今回はGASでGoogleスライドのTextRangeオブジェクトの概要とその取得方法についてです。ScriptでTrelloのAPIを利用して、1ヶ月の執筆数をメンバーごとに集計することをシリーズでお伝えしています。今回はAPIから得られた情報を元に、メンバー毎の執筆数を集計していきます。Scriptでダイアログを作るいくつかの方法と基礎知識GASの独自ダイアログを作成する機能を使って、csvファイルアップローダーを作る方法をシリーズでお伝えします。今回は、GASでダイアログの作るためのいくつかの方法とその概要についてをお送りしていきます。Scriptで特定のメールの添付ファイルをGoogleドライブに保存するツールを作成しています。今回は、ドライブ保存したことをチャットワークに通知する方法をお伝えしていきます。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント109セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。Scriptが「V8ランタイム」をサポート!モダンなECMAScript構文が使えるようになった2020.02.072020.02.08GASでコピーしたGoogleスライドのプレゼンテーションを取得する方法2020.02.052020.02.05Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。