こんにちは。CData Software Japanリードエンジニアの杉本です。
先月の CData Driver V21ドライバーリリースに伴い、CData Google Contacts Driver / Sync Connector が新しい People APIに対応しました!
これは、以前まで内部で利用していたAPI、Google Contacts API V3 が廃止され、その代わりにPeople APIの利用をしなければいけなくなったためです。
Warning: The Google Contacts API is now deprecated and is scheduled for sunset on June 15, 2021. Apps should instead use the People API. Get started with the migration guide. For our official statement on the deprecation please read our service announcement.
この変更に伴い、Driver内部では利用するAPIが完全に切り替わり、テーブルやビュー、およびカラムやストアド・プロシージャの構成が変わっています。
今回の記事では主にどういった違いがあるのか? また、最新のGoogle Contacts Driver / Sync Connector はどのように使うことができるのか?を解説したいと思います。
テーブル・ビュー・ストアドプロシージャの違い
さて、まずは利用できるテーブルやビューの違いについて見てみましょう。
この情報は以下のヘルプからそれぞれ参照することができます。
- V21 データモデル
- V20 データモデル
それぞれ利用できる機能を一覧でまとめてみました。元々提供されており、主に利用するテーブルであった、ContactsやContactGroupsは引き続き利用が可能です。
Type | Name | V20 | V21 |
---|---|---|---|
Table | ContactGroups | ○ | ○ |
Table | Contacts | ○ | ○ |
View | ContactOrganizations | ○ | |
View | GroupMembers | ○ | |
View | OtherContacts | ○ | |
View | PeopleConnections | ○ | |
Stored Procedure | AddContactToGroups | ○ | |
Stored Procedure | RemoveContactFromGroups | ○ | |
Stored Procedure | CopyOtherContactsToMyContacts | ○ | |
Stored Procedure | ModifyContactGroupMembers | ○ | |
Stored Procedure | UpdateOrDeleteContactPhoto | ○ | |
Stored Procedure | GetOAuthAccessToken | ○ | ○ |
Stored Procedure | GetOAuthAuthorizationURL | ○ | ○ |
Stored Procedure | RefreshOAuthAccessToken | ○ | ○ |
追加で連絡先に関連する組織情報を取得するためのContactOrganizationsや連絡先グループに含まれていない連絡先を取得するためのOtherContactsといった情報を取得するためのビューも追加されました。
また、もともと、People APIが、Google+とContactのデータ、両方を扱えるように設計されていたため、それらを統合的に扱うためのPeopleConnectionsというビューもあります。(ただ、Google+が終わってしまったので、現在どのように使うかちょっとわからないですね・・・)
なお、ContactGroupに含まれるメンバーを変更するための「AddContactToGroups」「RemoveContactFromGroups」は「ModifyContactGroupMembers」でまとめて実施できるようになりました。
取得できる Contacts データの違い
もう一点、今回のアップデートによる大きな違いが、Contactsテーブルで取得できるデータ項目の違いです。
- V21 Contacts
- V20 Contacts
以下の「NEW」となっている項目が新しく取得できる項目です。ちなみに、V20で提供されていたOrganizationに関する情報は、前述の「ContactOrganizations」で取得できるようになっています。
Name | Type | ReadOnly | NEW |
---|---|---|---|
Id [KEY] | String | TRUE | |
ResourceName | String | TRUE | NEW |
Etag | String | TRUE | |
NamePrefix | String | TRUE | |
FullName | String | TRUE | |
GivenName | String | FALSE | NEW |
MiddleName | String | FALSE | |
FamilyName | String | FALSE | |
NameSuffix | String | FALSE | |
NickNames | String | FALSE | |
Birthday | Date | FALSE | |
GenderAddressMeAs | String | FALSE | NEW |
Gender | String | FALSE | |
Photos | String | TRUE | NEW |
UnlabeledEmailAddresses | String | FALSE | NEW |
HomeEmailAddresses | String | FALSE | |
WorkEmailAddresses | String | FALSE | |
OtherEmailAddresses | String | FALSE | |
CustomEmailAddressTypes | String | FALSE | |
CustomEmailAddresses | String | FALSE | |
UnlabeledPhoneNumbers | String | FALSE | NEW |
HomePhoneNumbers | String | FALSE | |
WorkPhoneNumbers | String | FALSE | |
MobilePhoneNumbers | String | FALSE | |
OtherPhoneNumbers | String | FALSE | NEW |
HomeFaxes | String | FALSE | |
WorkFaxes | String | FALSE | |
OtherFaxes | String | FALSE | NEW |
Pagers | String | FALSE | |
WorkMobilePhoneNumbers | String | FALSE | NEW |
WorkPagers | String | FALSE | NEW |
MainPhoneNumbers | String | FALSE | NEW |
GoogleVoicePhoneNumbers | String | FALSE | NEW |
CustomPhoneNumberTypes | String | FALSE | |
CustomPhoneNumbers | String | FALSE | |
UnlabeledAddresses | String | FALSE | NEW |
HomeAddresses | String | FALSE | |
WorkAddresses | String | FALSE | |
OtherAddresses | String | FALSE | NEW |
CustomAddressTypes | String | FALSE | NEW |
CustomAddresses | String | FALSE | NEW |
AgeRanges | String | TRUE | NEW |
Biography | String | FALSE | NEW |
BiographyContentType | String | FALSE | NEW |
HomeCalendarUrls | String | TRUE | NEW |
FreeBusyCalendarUrls | String | TRUE | NEW |
WorkCalendarUrls | String | TRUE | NEW |
CustomCalendarUrlTypes | String | TRUE | NEW |
CustomCalendarUrls | String | TRUE | NEW |
ClientData | String | FALSE | NEW |
CoverPhotos | String | TRUE | NEW |
UnlabeledEvents | String | FALSE | NEW |
AnniversaryEvents | String | FALSE | NEW |
OtherEvents | String | FALSE | NEW |
CustomEventTypes | String | FALSE | NEW |
CustomEvents | String | FALSE | NEW |
AccountExternalIds | String | FALSE | NEW |
CustomerExternalIds | String | FALSE | NEW |
LoginIdExternalIds | String | FALSE | NEW |
NetworkExternalIds | String | FALSE | NEW |
OrganizationExternalIds | String | FALSE | NEW |
CustomExternalIdTypes | String | FALSE | NEW |
CustomExternalIds | String | FALSE | NEW |
FileAses | String | TRUE | NEW |
ImClientsProtocols | String | TRUE | NEW |
ImClientsUsernames | String | TRUE | NEW |
Interests | String | FALSE | NEW |
Locales | String | FALSE | NEW |
DeskLocations | String | FALSE | NEW |
GrewUpLocations | String | FALSE | NEW |
CustomLocationTypes | String | FALSE | NEW |
CustomLocations | String | FALSE | NEW |
Memberships | String | TRUE | NEW |
MiscKeywordTypes | String | FALSE | NEW |
MiscKeywordValues | String | FALSE | NEW |
Occupations | String | FALSE | NEW |
Organizations | String | FALSE | NEW |
RelationshipTypes | String | TRUE | |
RelationshipValues | String | TRUE | |
UnlabeledSipAddresses | String | FALSE | NEW |
HomeSipAddresses | String | FALSE | NEW |
WorkSipAddresses | String | FALSE | NEW |
MobileSipAddresses | String | FALSE | NEW |
OtherSipAddresses | String | FALSE | NEW |
CustomSipAddressTypes | String | FALSE | NEW |
CustomSipAddresses | String | FALSE | NEW |
Skills | String | TRUE | NEW |
UnlabeledUrls | String | FALSE | NEW |
HomeUrls | String | FALSE | NEW |
WorkUrls | String | FALSE | NEW |
BlogUrls | String | FALSE | NEW |
ProfileUrls | String | FALSE | NEW |
HomePageUrls | String | FALSE | NEW |
FtpUrls | String | FALSE | NEW |
ReservationsUrls | String | FALSE | NEW |
OtherUrls | String | FALSE | NEW |
AppInstallPageUrls | String | FALSE | NEW |
CustomUrlTypes | String | FALSE | NEW |
CustomUrls | String | FALSE | NEW |
使い方
最後に簡単ですが、CData Google Contacts Driver の使い方を解説します。
今回のアップデートはJDBC・ODBCなどのテクノロジーエディションすべて共通のアップデートです。以下のURLからそれぞれ30日間のトライアルがダウンロードできます。
今回はJDBC版を使いましたが、どれも基本的には接続方法は変わりありません。
通常、接続に必要なプロパティは「InitiateOAuth=GETANDREFRESH;」のプロパティ一つだけです。
JDBCでは「jdbc:googlecontacts:InitiateOAuth=GETANDREFRESH;」のように接続文字列を設定します。
この状態で「接続テスト」をクリックすると、以下のようにブラウザが立ち上がり、アクセス許可を求める画面が表示されます。
これを承諾することで、接続設定が完了します。
あとは任意のツールでそれぞれのデータにアクセスができます。
おわりに
基本的な機能は踏襲されていますが、細かく様々なアップデートがありますね。
もし利用にあたって気になることがあれば、お気軽にテクニカルサポートまで連絡ください。