2022年1月6日木曜日

Thunderbirdのアドレス帳とGmail の連絡先(Google Contacts)の同期

Thunderbird 91から、Thunderbird本体でCardDAVに対応しました。ほんとは78.7.1からですが、内部的に作られただけでUIがありませんでした。(たぶん。見つけられてなかっただけかも?)

で、何がうれしいかというと、ThunderbirdとGmailの連絡先との同期がアドオンなしでできるようになります。Gmailの連絡先を経由してiPhone/AndroidスマホとThunderbirdでアドレス帳を共有することもできるはずです。(「はず」と書いたのは、私は試していないからです。やるときは、バックアップをとるなど気を付けてください。)

過去、同期アドオンを作っていたこともあり(といっても10年近く前ですが)、今でも復活させてくれという要望がくるほどの機能なのですが、あまり知られていないようなので、簡単にやり方を紹介します。

やり方は2つ。
  1. 新規にアカウントをセットアップする場合:
    ウィザードに従ってアカウントを設定していった最後の画面に「リンクしたサービスへの接続」という項目がでてくるので、そこで設定します。
  2. すでにメール設定はできているなどでアドレス帳のみ設定する場合:
    アドレス帳で、「ファイル→新規作成→CardDAVアドレス帳」から作成します。

これでわかる方は、これでこの記事は終了です。

以下、手順を書いていきます。Thunderbird 78を使っている場合は、Thunderbird 91にあげる必要があるので、使っているアドオン対応状況等もふまえて慎重に。

1. 新規にアカウントをセットアップする場合

メールの設定と合わせてアドレス帳の同期設定もするケースです。すでにアカウントを設定済み場合は、削除してからやる必要はありません。その場合は2のほうの手順を確認してください。

まず、アカウントのセットアップウィザードを立ち上げます。ハンバーガーメニュー(ツールバーの三本線のボタン)から、「新規作成→既存のメールアカウント」で開きます。Thunderbirdをインストールしたての場合など、プロファイルが空っぽの場合は、勝手にこの画面になります。
「あなたのお名前」はメールのFromのところに表示したい名前を入れます。メールアドレスとパスワードは、設定したいGmailのアドレスとパスワードを入れます。

入力が終わったら、続けるを押して次へ。

以下のように、Thunderbirdが自動でサーバ設定を検知してくれます。普通はこのまま完了でいけるはずです。デフォルトではIMAPの設定になっているので、POP3にしたい場合は、選択を変えてください。

完了を押すと、OAuth2認証が始まります。メールアドレス、パスワードを入力して認証してください。認証を通ると、以下のように、Thunderbirdがメールや連絡先にアクセスするよと言ってくるので、許可を押します。よく見るとGoogleカレンダーにもアクセスすると書かれています。連絡先だけじゃなくて、カレンダーも一緒に同期することもできます。
アクセス許可すると、Thunderbirdのウィザードに「アカウントの作成が完了しました」とでてきます。が、ここですぐに閉じないでください。閉じてしまった場合は、この次の手順2のやりかたで設定してください。
下のほうに、「リンクしたサービスへの接続」というところがあり、「Thunderbirdがメールアカウントにリンクされたアドレス帳を1冊見つけました」というメッセージがあると思います。メッセージ横の矢印ボタンを押すと、上の画像のように「接続」ボタンが出てくるのでこれを押します。これで、アドレス帳が同期されます。

ちなみに、カレンダーも同様の項目があるので、同じように接続を押すとGoogleカレンダーも同期されます。

ここまできたら、「2.アドレス帳のみ設定する場合」は読み飛ばして、「同期設定が終わったら」へ進んでください。

2. アドレス帳のみ設定する場合

メールは設定済みの場合など、アドレス帳のみ設定するケースです。

まずは、アドレス帳ウィンドウを開きます。で、アドレス帳ウィンドウで、「ファイル→新規作成→CardDAVアドレス帳」を開きます。

ダイアログが開くので、以下のように設定します。
  • ユーザ名:Gmailのメールアドレス
  • 場所:https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default
※場所のuserEmailのところは、Gmailのメールアドレスに変えてください。
 メールアドレスがsample@gmail.comの場合は、
 https://www.googleapis.com/carddav/v1/principals/sample@gmail.com/lists/default
 になります。

次へを押すと、OAuth2認証が始まります。メールアドレス、パスワードを入力して認証してください。すると、以下のように、Thunderbirdが連絡先にアクセスするけどいいか?と聞いてくるので許可を押します。

許可すると、ダイアログに「利用可能なアドレス帳」というのが出てきます。「Address Book」にチェックが入ったままで次へを押すと完了です。チェックを外してしまうとアドレス帳ができないのでご注意を。

同期設定が終わったら

手順1または2で同期設定をしたら、アドレス帳ウィンドウを開いてみてください。「Address Book」というアドレス帳ができていると思います。

「Address Book」上で「右クリック→プロパティ」を開いてください。アドレス帳の名前や同期間隔を設定できます。CardDAV URLのところはいじらないように。
「Address Book」という名前は、別のアカウントを追加した場合も、同じ名前になってしまい(Address Bookというアドレス帳が2個できる)、紛らわしいので変えるのをおすすめします。同期間隔は、頻繁にアドレス帳を編集することはないと思うので、デフォルトの30分ごとで十分ではないかなと思います。今すぐ同期したいときには、右クリックメニューに「サーバと同期」というのがあるので、ここからできます。

以上で設定は終わりです。

最後に

今回、CardDAVというプロトコルを使用しているので、すべての項目が同期されるわけではないのでご注意ください。例えば、Google連絡先のラベルはThunderbirdから見ることはできません。何が同期されるのか、私も全部確認はしていませんが、できないものはしょうがないと割り切るしかないです。

どうしてもやりたい場合は、People API(旧Contacts API)を使ってアドオンを作る必要がありますが、なかなかに大変なので、そういったアドオンが今後でてくることはあまり期待できないかなと思います。Thunderbird 68までは、gContactSyncが頑張ってくれていましたが、Thunderbird 78対応で力尽きてしまったようですし。

私の過去のアドオンGoogle Contactsを動かしたくてたどり着いた方もいるかと思いますが、このCardDAVでの同期でカンベンしてください。自分用だったらいいんですが、いろんな使われ方をして、あれができない、データ壊れたとかいっぱいきちゃうんですよね…。gContactSyncの作者さんは、こんな低レベルな話じゃなくて単純に時間がとれてないだけみたいですけど。

2 件のコメント:

のっぽ さんのコメント...

68から78にアップデートしてからずっと同期できなくて困っていました。
久しぶりに検索してみたらこちらの記事がヒットして無事に同期できるようになりました。
CardDAVをうまく使えばできるっぽいことはわかっていたのですが、そこから進めておらずこの記事のおかげでようやく設定できました。

68から78になったとき、gContactSyncの作者の方へのアップデート希望のメッセージ量も見えてるだけでもすごかったですし、個人で対応されるのは本当に大変だと思います。
ご自身で開発する時間はとれなくても、こういう記事をつくってくださるだけでも十分助かります。
丁寧なご解説ありがとうございました。

匿名 さんのコメント...

"Thunderbirdのアドレス帳とGmail の連絡先(Google Contacts)の同期"
ができて、作業がすっごくはかどりました! 助かっています。ありがとうございました。

人気の投稿(過去7日間)