会社のデータベースや年賀状作成ソフトから出力した住所録のcsvをGoogle連絡先に同期させることを目標として設定しました。
本記事では、csvのファイルを読み込んで、Google連絡先に追加する部分を作成したので公開します。
Google CSV 形式について
Google CSV形式は恐らく以下のような構成になっているかと思います。各列名 | 各列の説明 |
---|---|
Name | 氏名 |
Given Name | 名 |
Additional Name | ミドルネームなど |
Family Name | 姓 |
Yomi Name | 氏名のよみがな |
Given Name Yomi | 名のよみがな |
Additional Name Yomi | ミドルネームなどのよみがな |
Family Name Yomi | 姓のよみがな |
Name Prefix | 敬称(名前の前);Mr.やMrs.、Dr.など |
Name Suffix | 敬称(名前の後);様、先生など |
Initials | イニシャル |
Nickname | ニックネーム |
Short Name | ショートネーム |
Maiden Name | 旧姓 |
Birthday | 誕生日 |
Gender | 性別 |
Location | |
Billing Information | 請求情報 |
Directory Server | |
Mileage | |
Occupation | 職業 |
Hobby | 趣味 |
Sensitivity | |
Priority | |
Subject | |
Notes | メモ |
Language | 言語 |
Photo | |
Group Membership | グループ |
E-mail 1 - Type | E-mail 1の種類;Home、Work、Mobileなど |
E-mail 1 - Value | E-mail 1のアドレス |
E-mail 2 - Type | E-mail 2の種類;Home、Work、Mobileなど |
E-mail 2 - Value | E-mail 2のアドレス |
Phone 1 - Type | Phone 1の種類;Home、Work、Mobileなど |
Phone 1 - Value | Phone 1の電話番号 |
Phone 2 - Type | Phone 2の種類;Home、Work、Mobileなど |
Phone 2 - Value | Phone 2の電話番号 |
Phone 3 - Type | Phone 3の種類;Home、Work、Mobileなど |
Phone 3 - Value | Phone 3の電話番号 |
Address 1 - Type | Address 1の種類;Home、Workなど |
Address 1 - Formatted | Address 1の住所 |
Address 1 - Street | Address 1の番地・区画 |
Address 1 - City | Address 1の市町村 |
Address 1 - PO Box | Address 1の私書箱 |
Address 1 - Region | Address 1の都道府県 |
Address 1 - Postal Code | Address 1の郵便番号 |
Address 1 - Country | Address 1の国 |
Address 1 - Extended Address | Address 1のアパートの部屋番号など |
Address 2 - Type | Address 2の種類;Home、Workなど |
Address 2 - Formatted | Address 2の住所 |
Address 2 - Street | Address 2の番地・区画 |
Address 2 - City | Address 2の市町村 |
Address 2 - PO Box | Address 2の私書箱 |
Address 2 - Region | Address 2の都道府県 |
Address 2 - Postal Code | Address 2の郵便番号 |
Address 2 - Country | Address 2の国 |
Address 2 - Extended Address | Address 2のアパートの部屋番号など |
Organization 1 - Type | Organization 1の種類;会社、学校など |
Organization 1 - Name | Organization 1の名前 |
Organization 1 - Yomi Name | Organization 1のよみがな |
Organization 1 - Title | Organization 1での役職 |
Organization 1 - Department | Organization 1での部署 |
Organization 1 - Symbol | |
Organization 1 - Location | Organization 1の場所 |
Organization 1 - Job Description | Organization 1での仕事内容 |
Custom Field 1 - Type | カスタムフィールド(自由に設定可能な領域) |
Custom Field 1 - Value | カスタムフィールド(自由に設定可能な領域) |
と以上の様に多くの情報が、Google連絡先には登録可能です。
人によっては列の項目がこれよりも多かったりするかも知れませんが、上記の場合のcsvを、インポートするプログラムを組みます。
上記のカスタムフィールドは同期させる時に必要な「修正日」や「住所録内でのID」などを想定しています。
また、CP932やShift_JISで保存されたcsvを想定していません。事前に他のプログラムで処理してあるものとします。
問題点:削除用のバッチ処理コードが実装されていない
一時的に削除用のグループを作成して、そこに削除したい全てのメンバーを移動し、一時的なグループごと削除するという方法が掲示されていました。
しかし、contactGroups.members.modifyでは、連絡先全体(people/me)を指定することができない様なので、結局は、逐次のグループ移動処理が必要になると思います。
前回作成したコードを一部流用して作成したのが以下のものです。
作成したコード
必要なファイル:credentials.json、contacts.csv以下のページにAPIの仕様がまとまっているので開発の上で役に立つかと思います。
続き
前々回、前回とサラミした記事になってしましましたが、Google People APIを使って住所録のcsvをGoogle連絡先に同期するプログラムが完成したので公開します。