{"id":1911,"date":"2011-03-01T23:01:00","date_gmt":"2011-03-01T23:01:00","guid":{"rendered":"http:\/\/www.b.shuttle.de\/hayek\/Hayek\/Jochen\/wp\/blog-en\/2011\/03\/01\/your-google-contacts-address-book-as-xml\/"},"modified":"2011-03-01T23:01:00","modified_gmt":"2011-03-01T23:01:00","slug":"your-google-contacts-address-book-as-xml","status":"publish","type":"post","link":"https:\/\/wp.jochen.hayek.name\/blog-en\/2011\/03\/01\/your-google-contacts-address-book-as-xml\/","title":{"rendered":"your Google Contacts address book as XML"},"content":{"rendered":"<p>\t\t\t\tToday I came across a rather interesting thread on the\u00a0<a href=\"mailto:googlecl-discuss@googlegroups.com\">googlecl-discuss<\/a> mailing list, it&#8217;s subject was &#8220;<i>Backing up contacts<\/i>&#8220;, and it thrilled me instantly. With this command line, you get your address book dumped as <b>completely<\/b>, as it currently can get:<\/p>\n<blockquote><p>\n<span>$ google contacts list &#8211;title=&#8221; &#8211;fields=xml<\/span><\/p><\/blockquote>\n<p>Of course you must have an up-to-date <a href=\"http:\/\/code.google.com\/p\/gdata-python-client\/\">gdata-python-client<\/a> and <a href=\"http:\/\/code.google.com\/p\/googlecl\/\">googlecl<\/a> installation. But you do have that anyway, don&#8217;t you? I updated mine today.<\/p>\n<p>Yes, the XML misses an enclosing top-level element \u2013 but you can add that easily.<\/p>\n<p>I would also love to see the <span>groupMembershipInfo<\/span> in a rather &#8220;accessible&#8221; way, but I guess, that will also come sooner or later.<\/p>\n<p>This lists alls groups (and not in XML for currently trivial reasons), but I am not able to relate the groups to the (group) URIs mentioned in the contacts XML:<\/p>\n<blockquote><p>\n<span>$ google contacts list-groups &#8211;title=&#8221; &#8211;fields=xml &#8211;verbose &#8220;.*&#8221;<\/span><\/p><\/blockquote>\n<p>\u2026<\/p>\n<p>My FRITZ!Box call monitor software will make use of the XML Google Contacts rather soon. That way I can skip all the current JRuby CSV and <a href=\"http:\/\/en.wikipedia.org\/wiki\/M17n#Multilingualism_in_computing\">m17n<\/a> problems. Its also more comfortable to download, because I can do that on the command line. And if it&#8217;s more comfortable, you do it more often. Backing up your address book frequently isn&#8217;t a bad idea either, right?!<\/p>\n<p>Update 2011-03-28:<br \/>\nTask accomplished for my FRITZ!Box call monitor software, also if executed through jruby-1.6.0.\t\t\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today I came across a rather interesting thread on the\u00a0googlecl-discuss mailing list, it&#8217;s subject was &#8220;Backing up contacts&#8220;, and it thrilled me instantly. With this command line, you get your address book dumped as completely, as it currently can get: $ google contacts list &#8211;title=&#8221; &#8211;fields=xml Of course you must have an up-to-date gdata-python-client and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_share_on_mastodon":"0"},"categories":[666],"tags":[],"class_list":["post-1911","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"share_on_mastodon":{"url":"","error":""},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/paO0kP-uP","jetpack_likes_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/1911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/comments?post=1911"}],"version-history":[{"count":0,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/posts\/1911\/revisions"}],"wp:attachment":[{"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/media?parent=1911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/categories?post=1911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.jochen.hayek.name\/blog-en\/wp-json\/wp\/v2\/tags?post=1911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}