CData Software Blog

クラウド連携のCData Software の技術ブログです。

CData Google Contacts Driver / Sync Connector が People API に対応しました

f:id:sugimomoto:20210712101605p:plain

こんにちは。CData Software Japanリードエンジニアの杉本です。

先月の CData Driver V21ドライバーリリースに伴い、CData Google Contacts Driver / Sync Connector が新しい People APIに対応しました!

これは、以前まで内部で利用していたAPIGoogle Contacts API V3 が廃止され、その代わりにPeople APIの利用をしなければいけなくなったためです。

developers.google.com

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.

f:id:sugimomoto:20210712101118p:plain

developers.google.com

この変更に伴い、Driver内部では利用するAPIが完全に切り替わり、テーブルやビュー、およびカラムやストアド・プロシージャの構成が変わっています。

今回の記事では主にどういった違いがあるのか? また、最新のGoogle Contacts Driver / Sync Connector はどのように使うことができるのか?を解説したいと思います。

www.cdata.com

www.cdata.com

f:id:sugimomoto:20210712101128p:plain

テーブル・ビュー・ストアドプロシージャの違い

さて、まずは利用できるテーブルやビューの違いについて見てみましょう。

この情報は以下のヘルプからそれぞれ参照することができます。

  • V21 データモデル

cdn.cdata.com

  • V20 データモデル

cdn.cdata.com

それぞれ利用できる機能を一覧でまとめてみました。元々提供されており、主に利用するテーブルであった、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

cdn.cdata.com

  • V20 Contacts

cdn.cdata.com

以下の「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 の使い方を解説します。

今回のアップデートはJDBCODBCなどのテクノロジーエディションすべて共通のアップデートです。以下のURLからそれぞれ30日間のトライアルがダウンロードできます。

www.cdata.com

f:id:sugimomoto:20210712101146p:plain

今回はJDBC版を使いましたが、どれも基本的には接続方法は変わりありません。

通常、接続に必要なプロパティは「InitiateOAuth=GETANDREFRESH;」のプロパティ一つだけです。

JDBCでは「jdbc:googlecontacts:InitiateOAuth=GETANDREFRESH;」のように接続文字列を設定します。

f:id:sugimomoto:20210712101153p:plain

この状態で「接続テスト」をクリックすると、以下のようにブラウザが立ち上がり、アクセス許可を求める画面が表示されます。

f:id:sugimomoto:20210712101159p:plain

これを承諾することで、接続設定が完了します。

あとは任意のツールでそれぞれのデータにアクセスができます。

f:id:sugimomoto:20210712101206p:plain

おわりに

基本的な機能は踏襲されていますが、細かく様々なアップデートがありますね。

もし利用にあたって気になることがあれば、お気軽にテクニカルサポートまで連絡ください。

https://www.cdata.com/jp/support/submit.aspx