2012年8月6日月曜日

連絡先の全てのe-mailアドレスを取得する

今回は連絡先の e-mail アドレスの取得の仕方について記す。Gmail の連絡先の e-mail
アドレスは、ひとつの連絡先に対して複数を登録することが可能なので、少々手間がかか
るが、手順としては以下の通りである :
 
手順1. 連絡先の e-mail アドレス、厳密には EmailField オブジェクト、の配列を取得する。
手順2. 配列の各要素の EmailField オブジェクトのアドレスを取得する。
  
  
【構文1】
ContactObject.getEmails()
  
戻り値 : EmailField 型 (配列)。EmailField オブジェクトの配列を返す。
  
  
【構文2】
EmailFieldObject.getAddress()
  
戻り値 : String 型。e-mail アドレスを返す。
  
  
今、下図の通り二つの連絡先が登録されているとして、一方は複数のアドレスが登録され
ており、しかもアドレスの一つには「副業用」というラベルになっている :
  
  
  
  
各連絡先には、各々の e-mail に「自宅」、「仕事」、あるいは、カスタムの (何の為に使用
するアドレスなのかを示す) ラベルを付与することができる。このラベルを取得する為には
EmailField クラスの getLabel メソッドを使用する。
  
  
【構文3】
EmailFieldObject. getLabel()
  
戻り値 : String 型。e-mail アドレスのラベルを返す。返される文字列は「自宅」は HOME
           「仕事」は WORK、カスタムは入力した文字列がそのまま返される。
  
  
以下に、上図の連絡先の e-mail を全て取得し、ログに書き出すサンプルコードを記す :
  
  
【例】
function GetAllEmailAddress() {
  var objContacts = ContactsApp.getContacts();
  var intMaxIndex = objContacts.length;
  for (var intIndex = 0; intIndex < intMaxIndex; intIndex++) {
    var objEmails = objContacts[intIndex].getEmails();
    for (var intIndex2 = 0; intIndex2 < objEmails.length; intIndex2++) {
      Logger.log(objContacts[intIndex].getFullName() + " " + 
                 objEmails[intIndex2].getLabel() + ":" +
                 objEmails[intIndex2].getAddress());
    }
  }
}
  
実行した結果のログは下図の通りとなる :
  

0 件のコメント:

コメントを投稿