Version 2.0.4 Released

Version 2.0.4 has been released.  It fixes the “Find All Groups” button in the New Account Wizard and Edit Accounts dialogs.

I also fixed Twitter import on my website.  The API changed and now requires using SSL for OAuth.

No Comments

Version 2.0.3 Release

Version 2.0.3 has been released with a fix for the expired token dialog not automatically being closed.  It should auto-update soon.  Thanks to gkresic on the forums and many others who sent me logs!

Version 2.0.2 was skipped because addons.mozilla.org said the version already existed.

No Comments

Version 2.0.1

I uploaded version 2.0.1 for review today.  It should fix the most common issues with version 2.0, mainly it switches over to using a special URI that instructs Google to change the document title instead of redirecting to localhost.

Change Details:

  • Added validation to prevent duplicate login errors
  • Updated authentication to no longer require a redirect to localhost.  That method didn’t work in a web server or other application was listening on port 80.
  • Fix: Next button in new account wizard with new account not always disabled
  • Fix: AB not displayed in new account dialog after having its synced username cleared
  • Added the cs locale courtesy of Michal Stanke
  • Added the es-ES locale courtesy of Scooter
  • Added the it locale courtesy of Leopoldo Saggin

No Comments

Version 2.0 Authentication Issues

A few people have had trouble authenticating with version 2.0.  Google deprecated the old method called ClientLogin, so version 2 switched over to OAuth2, which is more secure since you don’t have to provide the application with your password.

The most common causes are an application listening on port 80 (a web server, skype, etc.), not allowing cookies and using a proxy.

Please follow these steps if you are having trouble authenticating:

  • Update to version 2.0.3 – this version has a fix for the expired token dialog.  2.0.1 change the authentication method so it would work even when an application was listening on port 80 (such as a web server or skype)
  • Go to the Menu -> File -> Offline and verify Work Offline is not checked
  • Go to Menu -> Options -> Privacy.  Either check Accept cookies from sites (Accept third-party cookies can be set to Never) or click Exceptions… and add google.com and click Allow.  You may need to clear cookies and clear all exceptions first.
  • Go to the Menu -> Options -> Options -> Advanced -> General and click Config Editor…  Click the button saying you’ll be careful and type javascript.enabled in the filter.  If it is set to false right-click and and click Toggle.  Restart Thunderbird and try again.
  • Disable all other add-ons and restart Thunderbird.  Lightning + the Google Calendar Provider add-on have caused this issue in the past.
  • Go to Menu -> Options  -> Advanced -> Network & Disk Space -> Click on Settings -> choose No Proxy.  Restart Thunderbird and try again.

If none of the above works, please enable verbose logging in the gContactSync Preferences, try to authenticate again, then send me the log.  Also try clicking on this link in a web browser and see if it eventually redirects you to a blank page with an address localhost/?code=….  That link is what gContactSync uses to authenticate.

 

 

No Comments

Mandatory Upgrade – Version 2.0.0 Released

I recently released version 2.0.0 of gContactSync.  This is a mandatory upgrade for all users since Google is discontinuing the authentication method that previous versions used.

The first time you use version 2.0.0 or later you will have to reauthenticate each unique account you synchronize (once per e-mail address, not synchronized address book).  Unfortunately gContactSync cannot use your saved e-mail password from Thunderbird any more with OAuth2.

Features

  • Switches to OAuth2.  This is a more secure method of authentication and won’t require application-specific passwords for accounts using 2-step authentication.
  • Throttles requests that upload photos to Google.  This will prevent 503 errors when uploading several new photos in a short period of time, or photos appearing to not be synchronized.
  • Synchronization is now done in a worker thread to improve responsiveness while synchronizing.

,

No Comments

Version 2.0.0b1 released (beta channel)

I released version 2.0.0 beta 1 today to the beta channel.  The major change in version 2.0 is switching to OAuth2 for authentication because Google deprecated the ClientLogin method that previous versions of gContactSync used (it will no longer be supported in April 2015).  You can download it here.  Just scroll down to Development Channel.

The first time you use version 2.0.0b1 or later you will have to reauthenticate each unique account you synchronize (once per e-mail address, not synchronized address book).  Unfortunately gContactSync cannot use your saved e-mail password from Thunderbird any more with OAuth2.

It also adds a hidden preference to change the size of the Notes field in the Edit Contact dialog.    To change this preference:

  • Go to Menu -> Preferences -> Preferences
  • Go to the Advanced -> General tab
  • Click Config Editor…
  • Click the button saying that you’ll be careful
  • Type notesHeight
  • Double-click the result and type the desired size, followed by px, for example, 400px
  • Close the Config Editor and Preferences windows

If you try the beta please let me know how it works.

, , , ,

3 Comments

Offline errors in Thunderbird 31.2.0

I’ve received a few dozen error reports about error messages saying gContactSync can’t sync or authenticate with offline.  Most logs are from TB 31.2.0 but that may just be a coincidence.

I haven’t been able to recreate the issue yet so I would really appreciate the following information from anyone who has seen this error message:

  1. Disable any security software you have (Internet Security Suite, firewall, antivirus, etc.).  Kaspersky Internet Security is known to cause this issue, so disable it and try again.  If that works, make Mozilla Thunderbird a Trusted Application: http://support.kaspersky.com/11157#block1
  2. Go to the Menu -> File -> Offline and verify Work Offline is not checked
  3. Disable all other add-ons and restart Thunderbird.  Lightning + the Google Calendar Provider add-on have caused this issue in the past.
  4. Go to the Google Security page and verify that Access for Less Secure Apps is set to Enable
  5. Edit: Thanks to Julie from the comments: “So I went to Tools>Options>Network&DiskSpace>Connection/Settings and Selected “No Proxy”. Restarted Thunderbird, that message was gone, and now the gContactSync works.”
  6. Try downloading an old version of Thunderbird to see if that works.

If none of the above helps, please send me the following debug information:

  • Go to Menu -> Tools -> Error Console and paste the following then hit Evaluate.  Let me know what pops up:
    function reqLoaded() {if(this.readyState == 4){alert(this.status);}}var req=new XMLHttpRequest();req.open("GET", "https://www.google.com/accounts/ClientLogin", true);req.onreadystatechange=reqLoaded;req.send();
  • Turn on verbose logging and send me the log if it happens again (the third bullet shows how to find the log file location).
  • Send me your prefs.js file (this contains all of your settings so I can look for something that is common between all affected users):
    1. View the gContactSync log file
    2. At the top it shows your Thunderbird profile folder location:
       * Log location:     C:\Users\Josh\AppData\Roaming\Thunderbird\Profiles\31fopnzq.default\gcontactsync\gcontactsync_log.txt
    3. Open the directory that contains the gcontactsync folder (C:\Users\Josh\AppData\Roaming\Thunderbird\Profiles\31fopnzq.default in my case)
    4. E-mail me the prefs.js file in this directory
  • If you know how to use Wireshark, a trace while trying to synchronize would be extremely helpful.

Josh

4 Comments

Version 1.0.0 released

After a few years of development version 1.0.0 has been released.  I previously referred to this release as 0.4.0 but after reading many comments and even blog posts that mentioned the low version number was a sign that gContactSync isn’t stable I decided to bump the version up to 1.0.  It should be significantly easier to use with the new account wizard, merge on the first sync (a cause of many complaints when switching from a different sync add-on), postal address synchronization, better error handling, and more.

Thanks to everyone on the beta channel who has helped me test this release!

And thanks to the hard work of the translators on Babelzilla who made gContactSync available to a wider audience:

Michal Stanke (michal.stanke at mikk.cz) – cs
Sebastian Zartner – de
Mikael Hiort af Ornäs – sv-SE
Bert Visser – nl
markh van BabelZilla.org – nl
Scooter – es-ES
devezas – pt-PT

Upgrading

Some of the bug fixes and new features require an upgrade of all contacts.  The first time you sync with version 1.0 you will see a prompt.  Click OK and sync.  It may take some time because every contact has to be re-uploaded.

If you are on the development channel and already have one of the later 0.4.0 or 1.0 release candidates you already went through this upgrade.

Account Wizard

I received many comments over the years about how difficult gContactSync was to setup.  The new account wizard and the import on first sync feature should make it far easier to setup synchronization without creating duplicates.

The first time you start Thunderbird after installing 1.0 (assuming gContactSync wasn’t previously installed) you should see this.  You’ll also see it if you go to gContactSync -> New Account

wizard0

You can pick an existing account.  Both IMAP and gContactSync accounts are listed, so most users will never have to enter their e-mail address and password.

After clicking next you’ll see this screen:

wizard1

The address book field is populated with address books that aren’t already synchronzied with gContactSync and will suggest the e-mail address by default.  If it already exists it will add (X) to it where X is the first number for which no address book exists.  The groups/contacts to sync setting and sync direction are both available here.  More advanced settings such as which source has priority for conflicts can still be found in the Edit Accounts dialog.

Changes since version 0.3

Here’s a summary of the changes and fixes that went into version 1.0, this is far from a complete list, see github and mozdev if you’d like to see all the changes.

Features

  • New Account Wizard
  • The first sync merges existing contacts and groups/mailing lists
  • Postal addresses are synchronized by default
  • gContactSync uses Thunderbird’s existing address fields now that Google parses addresses
  • Added Postbox 3 support
  • Minor Accounts dialog changes
  • Added an option to sync only the selected address book to the AB context menu
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Miscellaneous improvements to importing contacts
    • Contacts are merged when possible.  Note that most sources only have display names and photos, so gContactSync only merges contacts with identical names
    • Better UI for picking the destination address book
    • Updated twitter import to use their newest API
    • Removed import sources that have taken down their APIs (Plaxo, MySpace, etc.)
  • Removed the “Other” tab on the preferences dialog.  This just caused confusion and I don’t know of anyone who actually used it.  The feature is still there, but only customizable through the Config Editor.
  • Better handling and mitigation of 503 (Service Unavailable) errors.
  • Button to clean up old contact photos (TB and gContactSync can both leave old photos behind)
  • Uses the new chat fields in Thunderbird instead of adding new fields
  • Website types/labels are now displayed in the contact view pane
  • Added a preference for a timeout for HTTP requests
  • Added a checkbox for the TB preference to show chrome errors in the error console
  • Added more People fields (number is configurable)
  • Added a button to reset all gContactSync settings
  • Added an Anniversary field that is synchronized with Google (reset/replace from server to get these fields)
  • Photos are only uploaded or downloaded if they have changed instead of if the contact has changed
  • Log rotation
  • Throttling to prevent 503 errors
  • New button to completely reset gContactSync to default settings

Bug Fixes

  • Treat infinite last modified dates as being older
  • Fixed a strict JavaScript warning (no functional change)
  • Support for empty extended property value names (Other tab of the Preferences dialog)
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Makes sure that the dummy e-mail address is added to a contact if it is being edited from the mailing list.
  • Bug fix for the preference to not sync contact photos (if a new Thunderbird contact had a photo gContactSync would add it to Google)
  • Photos synchronized or imported by gContactSync will still work when gContactSync is disabled or uninstalled (NOTE – this only applies to contacts synchronized or imported starting with 0.4.0a3)
  • Last modified date not set at the correct time, potentially causing a conflict on the next sync after adding a contact
  • Fix for last modified date being updated when a contact is not successfully uploaded to Google
  • Bug fix for persistent “You must login to sync contacts” message after canceling an expired authentication token prompt (NOTE: if you ran into this bug you must follow the instructions here: http://pirules.org/forum/index.php/topic,521.msg1680.html)
  • Bug fix for changing the type of a website or related person
  • Added a default delay between HTTP requests to mitigate 503 errors from Google (user over quota)
  • Various postal address bug fixes
  • Empty contacts are no longer synchronized since they cause errors
  • “null” stripped from contacts and groups
  • Last modified date warning if a new TB contact has a photo
  • Preferences are only logged if the AB window is opened
  • Fix for canceling the expired token prompt

,

No Comments

Version 0.4.0rc6 Released

I have released version 0.4.0rc6 (click on Development Channel).  This contains the last planned features for version 0.4.0 so if all goes well I hope to release 0.4.0 in June.

Changes since 0.4.0rc5

  • Added more People fields (number is configurable)
  • Added a button to reset all gContactSync settings
  • Added an Anniversary field that is synchronized with Google (reset/replace from server to get these fields)
  • Photos are only uploaded or downloaded if they have changed instead of if the contact has change

Changes since version 0.3

Features

  • New Account Wizard
  • The first sync merges existing contacts and groups/mailing lists
  • Postal addresses are synchronized by default
  • gContactSync uses Thunderbird’s existing address fields now that Google parses addresses
  • Added Postbox 3 support
  • Minor Accounts dialog changes
  • Added an option to sync only the selected address book to the AB context menu
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Miscellaneous improvements to importing contacts
    • Contacts are merged when possible.  Note that most sources only have display names and photos, so gContactSync only merges contacts with identical names
    • Better UI for picking the destination address book
    • Updated twitter import to use their newest API
    • Removed import sources that have taken down their APIs (Plaxo, MySpace, etc.)
  • Removed the “Other” tab on the preferences dialog.  This just caused confusion and I don’t know of anyone who actually used it.  The feature is still there, but only customizable through the Config Editor.
  • Better handling and mitigation of 503 (Service Unavailable) errors.
  • Button to clean up old contact photos (TB and gContactSync can both leave old photos behind)
  • Uses the new chat fields in Thunderbird instead of adding new fields
  • Website types/labels are now displayed in the contact view pane
  • Added a preference for a timeout for HTTP requests
  • Added a checkbox for the TB preference to show chrome errors in the error console
  • Added more People fields (number is configurable)
  • Added a button to reset all gContactSync settings
  • Added an Anniversary field that is synchronized with Google (reset/replace from server to get these fields)
  • Photos are only uploaded or downloaded if they have changed instead of if the contact has changed

Bug Fixes

  • Treat infinite last modified dates as being older
  • Fixed a strict JavaScript warning (no functional change)
  • Support for empty extended property value names (Other tab of the Preferences dialog)
  • Prevents a duplicate master password prompt when Thunderbird is started
  • Makes sure that the dummy e-mail address is added to a contact if it is being edited from the mailing list.
  • Bug fix for the preference to not sync contact photos (if a new Thunderbird contact had a photo gContactSync would add it to Google)
  • Photos synchronized or imported by gContactSync will still work when gContactSync is disabled or uninstalled (NOTE – this only applies to contacts synchronized or imported starting with 0.4.0a3)
  • Last modified date not set at the correct time, potentially causing a conflict on the next sync after adding a contact
  • Fix for last modified date being updated when a contact is not successfully uploaded to Google
  • Bug fix for persistent “You must login to sync contacts” message after canceling an expired authentication token prompt (NOTE: if you ran into this bug you must follow the instructions here: http://pirules.org/forum/index.php/topic,521.msg1680.html)
  • Bug fix for changing the type of a website or related person
  • Added a default delay between HTTP requests to mitigate 503 errors from Google (user over quota)
  • Various postal address bug fixes

, , , ,

No Comments

New Account Wizard

Version 0.4 will have a new account wizard to make setting up gContactSync for the first time and adding accounts easier.  The first page is for selecting an account to sync.  It finds IMAP and POP3 accounts in addition to existing gContactSync tokens so most users won’t even have to sign in.  The second page lets you choose an address book and the group(s) to sync.

Please let me know what you think, particularly whether I should include the synchronization direction (read-only, write-only, or bidirectional) and whether Google or TB has priority during conflicts.

, ,

4 Comments