aluxnimm / outlookcaldavsynchronizer

Sync Outlook with Google, SOGo, Nextcloud or any other CalDAV/CardDAV server
GNU Affero General Public License v3.0
920 stars 97 forks source link

Google Contacts not sincyng since last 2 days (API change?) #333

Open carlos-48 opened 2 years ago

carlos-48 commented 2 years ago

Hello,

Past weeks I got an error syncing Google Contacts, let's say one or twice per day. I did not pay attention because the other attempts to sync were OK.

Now, two days ago, I'm getting an error every 5 minutes, and it's not syncing. I've read that it could be due to a Google API change, from the old Contacts API to the new People API.

image

itsolon commented 2 years ago

Hello,

Past weeks I got an error syncing Google Contacts, let's say one or twice per day. I did not pay attention because the other attempts to sync were OK.

Now, two days ago, I'm getting an error every 5 minutes, and it's not syncing. I've read that it could be due to a Google API change, from the old Contacts API to the new People API.

image

the same for me

JFAlbrecht commented 2 years ago

Same Here as well

dust0vich commented 2 years ago

Same issue. Even with new oauth approval.

Google.GData.Client.GDataRequestException: Execution of request failed: https://www.google.com/m8/feeds/groups/default/full ---> System.Net.WebException: The remote server returned an error: (400) Bad Request. Win 10 21H1 Outlook 2019 Version 2109 Caldav Synchronizer 4.1.0

BoGnY commented 2 years ago

same issue on multiple pc

krystofkrticka commented 2 years ago

I have same issue, and I already tried signing in again.

filippobottega commented 2 years ago

Same issue for me:

<ExceptionThatLeadToAbortion>Google.GData.Client.GDataRequestException: Execution of request failed: https://www.google.com/m8/feeds/groups/default/full ---&gt; System.Net.WebException: Errore del server remoto: (400) Richiesta non valida.

HyP3r- commented 2 years ago

Same issue for me:

Google.GData.Client.GDataRequestException: Execution of request failed: https://www.google.com/m8/feeds/contacts/foobar@gmail.com/full?max-results=100&group=http://www.google.com/m8/feeds/groups/foobar%2540gmail.com/base/6 ---> System.Net.WebException: Der Remoteserver hat einen Fehler zurückgegeben: (400) Ungültige Anforderung.
   at System.Net.HttpWebRequest.GetResponse()
   at Google.GData.Client.GDataRequest.Execute()
   --- End of inner exception stack trace ---
   at Google.GData.Client.GDataRequest.Execute()
   at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter)
   at Google.GData.Client.GOAuth2Request.Execute()
   at Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength)
   at Google.GData.Client.Service.Query(FeedQuery feedQuery)
   at Google.GData.Client.Feed`1.get_AtomFeed()
   at Google.GData.Client.Feed`1.<get_Entries>d__0.MoveNext()
   at CalDavSynchronizer.Implementation.GoogleContacts.GoogleContactCache.Fill(String defaultGroupIdOrNull)
   at CalDavSynchronizer.Implementation.GoogleContacts.GoogleContactContextFactory.<Create>b__5_0()
   at System.Threading.Tasks.Task`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at CalDavSynchronizer.Implementation.GoogleContacts.GoogleContactContextFactory.<Create>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at GenSync.Synchronization.ContextCreatingSynchronizerDecorator`7.<Synchronize>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at CalDavSynchronizer.Scheduling.SynchronizationProfileRunner.<RunAndRescheduleNoThrow>d__22.MoveNext()
aluxnimm commented 2 years ago

Yes, Google changed the API, we are working on the new people API but this will take some time. Our focus is CalDAV/CardDAV not proprietary APIs.

filippobottega commented 2 years ago

I @aluxnimm , do you know if there is a workaround to sync Google Contacts in the meantime?

If I disable native API:

image

I get this error:

image

Rubberduck2021 commented 2 years ago

While waiting for the developers of Outlook CalDav Synchronizer to update to the new google API, I am using GO Contact Sync Mod to sync contacts between Outlook and Google.

filippobottega commented 2 years ago

@Rubberduck2021 me too! Thank you for your suggestion!

jpickerell commented 2 years ago

Looks like coding attempts have begun by @nertsch to try to get switched over to the new Google People API!!!! Maybe we'll see a fix for this before the end of the calendar year!?!

Anyone want to compile and test to see if it's working?! (not sure if code ready to test or not yet???)

Tree Commit

felipelrz commented 2 years ago

I was struggling with this issue, but yesterday I've found a solution:

  1. Uncheck 'Use Google native API'
  2. Edit the URL to "https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default/" as described here.

There is comprehensive post by Wayland Bruns, but the most interesting part is:

Starting June 15, 2021, API calls will begin returning errors at a steadily increasing rate, until the error rate reaches 100% on December 15, 2021, as outlined below:

• June 15, 2021 – September 15, 2021: 1% of Google Contacts API calls will return errors • September 15, 2021 – December 15, 2021: 10% of Google Contacts API calls will return errors • December 15, 2021, and onward: 100% of Google Contacts API calls will return errors

I hope that help.

mneiger commented 2 years ago

@felipelrz it definitely helps, thanks a lot. Contact groups are not synced anymore, but this is a minor annoyance for me, especially as I'm syncing "Outlook to google" only.

Vivsim commented 2 years ago

@felipelrz. Thanks so much. Luckily, I don't have contact groups so my whole problem is solved. Your solution didn't work the first time I tried it because I made a mistake. It didn't click with me that I had to replace 'UserEmail' in the URL with my actual user email. Stupid but just the sort of mistake that's easy to make. I'm so relieved to be synching contacts again. Can't thank you enough.

JReming85 commented 2 years ago

I was struggling with this issue, but yesterday I've found a solution:

  1. Uncheck 'Use Google native API'
  2. Edit the URL to "https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default/" as described here.

There is comprehensive post by Wayland Bruns, but the most interesting part is:

Starting June 15, 2021, API calls will begin returning errors at a steadily increasing rate, until the error rate reaches 100% on December 15, 2021, as outlined below: • June 15, 2021 – September 15, 2021: 1% of Google Contacts API calls will return errors • September 15, 2021 – December 15, 2021: 10% of Google Contacts API calls will return errors • December 15, 2021, and onward: 100% of Google Contacts API calls will return errors

I hope that help.

Thank you, that solved it for me

https://www.googleapis.com/carddav/v1/principals/<Google Email>/lists/ returns all contacts for me despite group

Stepan-H commented 2 years ago

I was struggling with this issue, but yesterday I've found a solution:

  1. Uncheck 'Use Google native API'

  2. Edit the URL to "https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default/" as described here.

There is comprehensive post by Wayland Bruns, but the most interesting part is:

I hope that help.

Does not working for me... 😥

JReming85 commented 2 years ago

https://www.googleapis.com/carddav/v1/principals/<Google Email>/lists/ returns all contacts for me despite group

Try using this, worked for both my personal and enterpise account

BoGnY commented 2 years ago

@Stepan-H commented on 20 gen 2022, 22:55 CET:

I was struggling with this issue, but yesterday I've found a solution:

  1. Uncheck 'Use Google native API'

  2. Edit the URL to "https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default/" as described here.

There is comprehensive post by Wayland Bruns, but the most interesting part is:

I hope that help.

Does not working for me... 😥

yes, with this url it doesn't return any errors, but contacts are not syncronized 😭

grv87 commented 2 years ago

Note that disabling "Google native API" means that CardDAV is used. And not all Google Contacts are available via CardDAV.

For example, I have 798 entries in Google Contacts now. When I sync them with Outlook via CardDAV (not using Native API), I get just 619 entries. 179 entries are lost somewhere. I tried another CardDAV client, and it gave me the same number of contacts. So, this problem is not specific to CalDav Synchronizer. I suspect that Google Contacts prefilters entries that it can't present correctly in CardDAV.

On the other hand, GO Contact Sync Mod proposed by @Rubberduck2021 in https://github.com/aluxnimm/outlookcaldavsynchronizer/issues/333#issuecomment-986990169 gives me 797 entries. And it logs which 1 entry it can't sync and why. So, I recommend the latter solution. Until this issue is resolved.

aluxnimm commented 2 years ago

Release 4.2.0 fixed autodiscovery for CardDAV and 400 error when testing the default addressbook https://www.googleapis.com/carddav/v1/principals/userEmail/lists/default/ and sets CardDAV as default in Google profiles again, please use that instead of native API, since we didn't have time yet to work on the new People API.

filippobottega commented 2 years ago

Thank you very mutch @aluxnimm !!!

Stepan-H commented 2 years ago

Thank you too... Sadly syncing Categories (Outlook) <=> Labels (Google) does not work.