GASでGoogle連絡先から「メールアドレス」と「電話番号」を取得する【送付状作成ツール⑤】

こんにちは。ITライターのもり(@moripro3)です!GoogleAppsScriptの記事をお届けしています!

「送付状作成ツール」を題材として、GASの自動化事例をシリーズでお届けしています。

Googleサービスのひとつである「Google連絡先」の登録データをスプレッドシートに取得して、送付状の宛先欄に自動で書き込むGASツールです。

※連載シリーズの最後で実物のツール(スプレッドシート)を公開しますので、ぜひご活用ください。

当シリーズのメイン処理は「Google連絡先のデータをスプレッドシートに取得する処理」です。

Google連絡先の取得

前回までの記事で、Google連絡先から「氏名」「会社名」「役職」「住所」を取得してスプレッドシートに書き込む処理を作りました。

[kanren postid=”78783″]

スクリプトを実行すると、Google連絡先の登録件数分のデータがスプレッドシートに出力されます。

Google連絡先

Google連絡先からメールアドレス・電話番号・ラベルを取得する

今回の記事では、各連絡先から「メールアドレス/ラベル」「電話番号/ラベル」を取得して、スプレッドシートに書き込む処理を作成します。

Google連絡先では、1つの連絡先につき、メールアドレス・電話番号を複数登録できます。仕事用・自宅用など複数登録されていることを想定して、最大2件取得する仕様にします。

Google連絡先からメールアドレスと電話番号を取得

Google連絡先から「メールアドレス/ラベル」「電話番号/ラベル」を取得するためには、まず「EmailField」「PhoneField」取得します。

これまでシリーズを通して紹介してきた「会社フィールド」「住所フィールド」と同じ考え方です。

  • EmailField
    • メールアドレス
    • ラベル
  • PhoneField
    • 電話番号
    • ラベル

EmailFieldとPhoneField

まずはメールアドレスの取得方法から紹介していきます。

Google連絡先からメールアドレスとラベルを取得する

Google連絡先から「メールアドレス/ラベル」を取得する方法を紹介します。

Google連絡先の「EmailField」を取得する

「メールアドレス」と「ラベル」を取得するには、このような順番でアクセスします。

  • Contactオブジェクト → EmailField→ メールアドレス 1~n
  • Contactオブジェクト → EmailField→ ラベル 1~n

 

そこで、まずは「EmailField」を取得します。

ContactクラスのgetEmailsメソッド「EmailField」を取得します。

[box class=”blue_box” title=”getEmailsメソッド”]
  • Contactオブジェクト.getEmails()

指定の連絡先のメールアドレスのフィールドを取得します。

※戻り値は、EmailFieldクラスの配列です。

[/box]

各連絡先の「EmailField」を取得するコードがこちら。

 

スクリプト実行ログです。Google連絡先に登録している連絡先それぞれについて、メールアドレスが何件登録されているかがわかります。

たとえば連絡先1件目には3件のメールアドレス、連絡先2件目には2件のメールアドレスが登録されています。

 

それぞれの [EmailField] の中に「メールアドレス」と「ラベル」のデータが含まれています。データを取り出してみましょう。

「EmailField」から「メールアドレス」と「ラベル」を取得する

EmailFieldクラスの公式ドキュメントがこちらです。2つのメソッドを使用します。

  • 「メールアドレス」の取得 → getAddressメソッド
  • 「ラベル」の取得 → getLabelメソッド
[box class=”blue_box” title=”getAddressメソッド・getLabelメソッド”]
  • EmailFieldオブジェクト.getAddress()

「メールアドレス」を取得します。

  • EmailFieldオブジェクト.getLabel()

「ラベル」を取得します。

[/box]

各連絡先の「EmailField」から「メールアドレス」と「ラベル」を取得するコードです。

まずは動作確認のため、最初の1件目のみを取得しています。要素番号[0]を指定します。

 

スクリプト実行ログです。4件の連絡先それぞれについて、最初の1件目の「メールアドレス」と「ラベル」が取得できました。

 

Google連絡先のメールアドレス

最大2件の「メールアドレス」と「ラベル」を取得する

この記事では、登録メールアドレスのうち、最初の2件を取得することにします。

メールアドレスの登録状況と取得結果は下記のようになります。

  • 3件以上 → 最初の2件のみを取得
  • 2件 → 2件を取得
  • 1件 → 1件を取得
  • 0件 → 取得しない

Emailフィールドを受け取り、最大2件の「メールアドレス」「ラベル」を取得して、 [メールアドレス1, ラベル1, メールアドレス2, ラベル2] の配列を返す関数 getEmails を作ります。

 

スクリプト実行ログです。各連絡先の「メールアドレス」と「ラベル」を一次元配列にしました。

 

処理のポイントは2点です。

【ポイント1】try – catch 文でのエラー処理

メールアドレスの登録が2件未満の場合、getAddressメソッド・getLabelメソッドでエラーになります。

エラー、つまり、登録がない場合は空白で返したいので、try~catch文でエラーハンドリングをしています。

 

【ポイント2】二次元配列を一次元配列に変換する

下記のコードで二次元配列を一次元配列に変換しています。最終的にスプレッドシートに書き込むために必要な処理です。

 

Google連絡先から電話番号とラベルを取得する

次に、電話番号の取得処理を作ります。メールアドレスの取得とまったく同じ仕組みのため、詳細なコードは省略します。

Google連絡先の「PhoneField」を取得する

ContactクラスのgetPhonesメソッド「PhoneField」を取得します。

[box class=”blue_box” title=”getPhonesメソッド”]
  • Contactオブジェクト.getPhones()

指定の連絡先の電話番号のフィールドを取得します。

※戻り値は、PhoneFieldクラスの配列です。

[/box]

「PhoneField」から「電話番号」と「ラベル」を取得する

PhoneFieldクラスの公式ドキュメントがこちらです。

  • 「電話番号」の取得 → getPhoneNumberメソッド
  • 「ラベル」の取得 → getLabelメソッド
[box class=”blue_box” title=”getPhoneNumberメソッド・getLabelメソッド”]
  • PhoneFieldオブジェクト.getPhoneNumber()

「電話番号」を取得します。

  • PhoneFieldオブジェクト.getLabel()

「ラベル」を取得します。

[/box]

最大2件の「電話番号」と「ラベル」を取得する

Phoneフィールドを受け取り、最大2件の「電話番号」「ラベル」を取得して、 [電話番号1, ラベル1, 電話番号2, ラベル2] の配列を返す関数 getPhones を作ります。

 

【スクリプトまとめ】Google連絡先からデータを取得する

今回の記事では、GASで「Google連絡先」から「メールアドレス/ラベル」と「電話番号/ラベル」を取得する方法を紹介しました。

これまでの記事で、目的の項目をすべて取得できました。

Google連絡先

これまでに作成した全スクリプトを掲載します。エントリポイント exportContact 関数を実行すると、上記のようにデータが取得できます(書き込み先のシート名は contact にしています)

exportContact 関数の前回記事からの追加点は黄色ハイライトの行です。

  • 31,32行目 → 「メールアドレス/ラベル」の取得処理
  • 34,35行目 → 「電話番号/ラベル」の取得処理
  • 39行目 → スプレッドシートに書き込むために、他項目の一次元配列と連結しています
 

さて、ここまでで目的のデータをすべて取得するスクリプトを作りました。連絡先は1回取得すれば終わり・・・ではなく、Google連絡先の登録データは随時増えていきますよね。

そこで次回は、「新規連絡先を差分追加する処理」を加えます。「スクリプト前回実行時から今回実行時までの間に新規登録した連絡先」を、スプレッドシートの最終行に追加します。

[kanren postid=”78846″]

 

[box class=”pink_box”]

【連載目次:GASで作る送付状作成ツール】

  1. GASでGoogle連絡先の「氏名」を取得する【送付状作成ツール①】
  2. GASでGoogle連絡先の「会社名」と「役職」を取得する【送付状作成ツール②】
  3. GASでGoogle連絡先から取得したデータをスプレッドシートに書き込む【送付状作成ツール③】
  4. GASでGoogle連絡先から「住所」を取得する【送付状作成ツール④】
  5. GASでGoogle連絡先から「メールアドレス」と「電話番号」を取得する【送付状作成ツール⑤】
  6. GASでGoogle連絡先に新規登録された連絡先のみを取得する【送付状作成ツール⑥】
  7. GASでGoogle連絡先から取得したデータを使用して送付状を作る【送付状作成ツール⑦】<※ツール公開あり>
[/box]

【AI請求書処理】従来の請求書OCRでは対応できない非定型帳票や

自動会計仕訳も、sweeepなら対応可能!最短で即日導入、

面倒な設定不要。手軽に導入して請求業務を効率化。