初心者でも簡単!Google Apps Scriptでドキュメントを取得して表示する方法

document

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

さて、Google Apps Scriptでメールマガジンを送るシステムを作っています。

前回はGmailを操作してメールを送る方法についてお伝えしました。

初心者でも簡単!Google Apps ScriptでGmailを操作してメールを送る方法
Google Apps Scriptでメールマガジンを送るシステムを作りたいと思います。シリーズ初回の今回は、Google Apps ScriptでGmailを操作してメールを送る方法です。

今回は、それとはうって変わってGoogle Apps Scriptでドキュメントを取得する方法についてお伝えしたいと思います。

Gmail、Googleドキュメント、スプレッドシートなどGoogleサービスをじゃんじゃん活用しますよ!

では、さっそく行ってみましょう!

スポンサーリンク

なぜ、メルマガシステムでドキュメントを操作するか?

メルマガシステムの全体の方針をいったん整理しておきますね。

  1. スプレッドシートに送信先メールアドレスのリストを作る
  2. ドキュメントにメルマガの内容を作成する
  3. Gmailでメールアドレスのリストにメルマガの内容を送信する

こんな流れです。

スプレッドシートのいずれかのセルにメルマガの内容を書いてもいいのですが、書きづらいですし、管理もしづらいので、ドキュメント1つに対してメルマガ1つを対応させていく運用をしていきたいと思います。

ということで、ドキュメントを使います!

ドキュメントもGoogle Apps Scriptで操作することができますからね。

ドキュメントを取得してログに出力するスクリプト

今回はドキュメントを取得してログに出力するスクリプトを作成してみます。

ドキュメントを作成

まずテスト用として新規のドキュメントを作成します。

Googleドライブの「新規」または右クリックメニュー→「Googleドキュメント」です。

Googleドライブから新規ドキュメントを作成

ドキュメント名を「ドキュメントテスト」として本文を適当に記入しました。

新規のGoogleドキュメント

で、このドキュメントのURLアドレスはドキュメントをスクリプトから取得するときに使いますのでコピペしておいて下さいね。

GoogleドキュメントのURL

https://docs.google.com/document/d/{ドキュメントID}/edit

スクリプトファイルに新しいfunctionを書く

それでは、スクリプトを作成していきます。

前回のスプレッドシートから開いたプロジェクト「メールテスト」の、ファイル「main.gs」のつづきに書いていきます。

スクリプトファイルに新しいfunctionを書く

スクリプトファイルには、複数のfunctionを書くことができるんです。

ただし、function名は変えなくてはいけませんよ。

ドキュメントを取得するスクリプト

スクリプトエディタで以下スクリプトを入力します。

function logDocument() {

  const DOC_URL = '*****コピーしたドキュメントのURL*****'; 
  const doc = DocumentApp.openByUrl(DOC_URL);
  console.log(doc.getName());
  console.log(doc.getBody().getText());

}

超短いですね。

あ、ちなみに定数DOC_URLに格納する値には、皆さんが先ほどコピーしたURLを文字列として指定してくださいね。

openByUrlメソッドでドキュメントを取得する

まず、ドキュメントのURLを指定してドキュメントを取得する場合はDocumentAppクラスのopenByUrlメソッドを使用します。

DocumentApp.openByUrl(ドキュメントURL)

これにより、指定したURLのドキュメントをDocumentオブジェクトとして取得して、取り扱うことができるようになります。

getNameメソッドでドキュメントタイトルを取得する

また、取得したドキュメントのタイトルを取得するには、DocumentオブジェクトのgetNameメソッドを使用します。

Documentオブジェクト.getName()

getBodyメソッドとgetTextメソッドで本体のテキストを取得する

また、ドキュメントの本体の文字列を取得するには、まずgetBodyメソッドで、ドキュメントの本体を表すBodyオブジェクトというものを取得して…

Documentオブジェクト.getBody()

その上で、本体の文字列を取得するgetTextメソッドを使用します。

Bodyオブジェクト.getText()

console.logでログ出力をする

console.log(内容)

これは、ログ画面に内容を出力する命令です。

ドキュメントを取得してログ画面に出力する

以上のスクリプトを実行してみますと、まずドキュメントの承認を求められますので許可してあげて下さい。

ドキュメントの承認

「あれ?前にやったよ?」と思われるかも知れませんが、今回は「URLしたドキュメント」に対するアクセスの承認です。

さて、承認が完了すると、何も起こらずに、そのままスクリプトの実行が完了しちゃいます。

ですが、ここは「表示」→「ログ」とします。

スクリプトエディタでログを表示

メニューに記載のある通り、ショートカットキー Ctrl + Enter でもOKです。

すると、ログの画面が表示され、無事にドキュメントのタイトルと本文が表示されているのがわかります。

ログにドキュメントのタイトルと本文を表示

このドキュメントの本文を少し加工をして、前回お伝えしたようにGmailに送れば、Googleドキュメントで用意した本文をメールで送信するプログラムが実現できます。

まとめ

以上、Google Apps Scriptでドキュメントを取得する方法についてお伝えしました。

ドキュメントはURLさえわかれば取得できる、ということを覚えておいて頂ければと思います。

次回はこのドキュメントの本文をメルマガっぽい内容にして、社名や宛名などを都度差し込めるように組んでいきたいと思います。

429 Too Many Requests

どうぞお楽しみに!

連載目次:Google Apps Scriptでメルマガシステムを作っちゃおう!

Google Apps ScriptでGmail、スプレッドシート、ドキュメントを連携させて操作することでメルマガシステムが簡単に実現できます。思ったより2割くらい簡単にできますよ。ちなみに無料です…さすがGoogle。
  1. 初心者でも簡単!Google Apps ScriptでGmailを操作してメールを送る方法
  2. 初心者でも簡単!Google Apps Scriptでドキュメントを取得して表示する方法
  3. Google Apps Scriptでスプレッドシートのリストをもとに宛名を差し込んだメール本文を作る
  4. たったの28行!Google Apps Scriptで超簡易メルマガ配信システム
  5. Google Apps Scriptのメルマガ配信リスト自動更新スクリプトを高速化する
タイトルとURLをコピーしました