libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Googleコンタクトにアクセスする (4/5)

作成:2011-08-01 08:42
更新:2011-11-04 16:59

■さまざまなフィールドの利用

Contactの情報は、これだけではありません。というより、ここからが本番といえます。――Contactでは、名前以外の様々な情報は、その項目(フィールド)を管理するオブジェクトを用意し、それを利用して値の保管や設定を行うようになっています。電話番号のオブジェクト、メールアドレスのオブジェクト……といった具合ですね。では、これらのフィールドとそのオブジェクトごとに基本的な使い方を整理しましょう。

○「EmailField」オブジェクト関係

・EmailFieldの取得
配列 =《Contact》getEmails();
配列 =《Contact》setEmails( ラベル );

・EmailFieldの追加
《Contact》.addEmail( ラベル, EmailFieldオブジェクト );

・EmailFieldの主なメソッド
変数 =《EmailField》.getLabel();
《EmailField》.setLabel( ラベル );
変数 =《EmailField》.getAddress();
《EmailField》.setAddress( メールアドレス );
変数 =《EmailField》.isPrimary();
《EmailField》.setAsPrimary( 真偽値 );
《EmailField》.deleteEmailField();

メールアドレスのフィールド情報を管理するのがEmailFieldオブジェクトです。Contactに含まれているEmailFieldは、getEmailsで取得できます。これはEmailFieldの配列として値が返されます。また追加はaddEmailで、メールアドレスのラベル(自宅・会社などの指定)とアドレスのテキストを指定します。他、デフォルトで使われるアドレスに関するsetAsPrimary/isPrimaryというメソッドもあります。

○「PhoneField」オブジェクト関係

・PhoneFieldの取得
配列 =《Contact》getPhoneField();
配列 =《Contact》setPhoneField( ラベル );

・PhoneFieldの追加
《Contact》.addPhone( ラベル, PhoneFieldオブジェクト );

・EmailFieldの主なメソッド
変数 =《PhoneField》.getLabel();
《PhoneField》.setLabel( ラベル );
変数 =《PhoneField》.getPhoneNUmber();
《PhoneField》.setPhoneNUmber( 電話番号 );
変数 =《PhoneField》.isPrimary();
《PhoneField》.setAsPrimary( 真偽値 );
《PhoneField》.deletePhoneField();

PhoneFieldは、電話番号フィールドを管理するオブジェクトです。やはりラベルと電話番号データ、デフォルトで使うための優先度の設定などが用意されています。

○「AddressField」オブジェクト関係

・AddressFieldの取得
配列 =《Contact》getAddresses();
配列 =《Contact》setAddresses( ラベル );

・AddressFieldの追加
《Contact》.addAddresses( ラベル, AddressFieldオブジェクト );

・AddressFieldの主なメソッド
変数 =《AddressField》.getLabel();
《AddressField》.setLabel( ラベル );
変数 =《AddressField》.getAddress();
《AddressField》.setAddress( 住所 );
変数 =《AddressField》.isPrimary();
《AddressField》.setAsPrimary( 真偽値 );
《AddressField》.deleteAddressField();

AddressFieldは、住所フィールドを管理するオブジェクトです。やはり住所の値(テキスト)とラベル、デフォルトで使う優先度といった設定が用意されています。――ここまでくると、どのフィールド用オブジェクトも、だいたい同じようなしくみになっていることが次第にわかってきますね?

○「UrlField」オブジェクト関係

・UrlFieldの取得
配列 =《Contact》getUrls();
配列 =《Contact》setUrls( ラベル );

・UrlFieldの追加
《Contact》.addUrl( ラベル, UrlFieldオブジェクト );

・UrlFieldの主なメソッド
変数 =《UrlField》.getLabel();
《UrlField》.setLabel( ラベル );
変数 =《UrlField》.getAddress();
《UrlField》.setAddress( 住所 );
変数 =《UrlField》.isPrimary();
《UrlField》.setAsPrimary( 真偽値 );
《UrlField》.deleteUrlField();

URLフィールドを管理するものです。やはりアドレス、ラベル、デフォルトの優先度といった設定があります。これらもだいたい同じようなメソッド構成になっています。

この他にも、日にち関係やインスタントメッセージ、会社などのフィールド、またカスタムフィールドのオブジェクトなどが用意されていますが、基本的な仕組みはここまで説明したオブジェクトとほぼ同じです。とりあえず、「メール」「電話番号」「住所」「URL」といった基本的な項目が理解でき使えるようになれば、後はだいたい同じような感覚で使えるようになりますから、まずはこの4つの基本オブジェクトだけしっかり覚えておきましょう。

では、下に簡単な利用例をあげておきます。先ほどのサンプルの修正で、メールアドレスを入力すると、その連絡先を取得し、名前、メールアドレス、電話番号、住所といった情報をログに書き出します。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

function getContact(){
  var str = Browser.inputBox("メールアドレスを入力:");
  var contact = ContactsApp.getContact(str);
  if (contact != undefined){
    Logger.log("ID:" + contact.getId());
    Logger.log("Name:" + contact.getFullName());
    var emails = contact.getEmails();
    for(var i = 0;i < emails.length;i++){
      Logger.log("Email:" + emails[i].getAddress());
    }
    var phones = contact.getPhones();
    for(var i = 0;i < phones.length;i++){
      Logger.log("Phone:" + phones[i].getPhoneNumber());
    }
    var addresses = contact.getAddresses();
    for(var i = 0;i < addresses.length;i++){
      Logger.log("Address:" + addresses[i].getAddress());
    }
    var urls = contact.getUrls();
    for(var i = 0;i < urls.length;i++){
      Logger.log("Url:" + urls[i].getAddress());
    }
  }
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る