ifwe / digsby

Digsby = IM + Email + Social Networks
http://www.digsby.com
Other
202 stars 54 forks source link

Gmail Ceased Working #32

Closed darkmorpher closed 7 years ago

darkmorpher commented 10 years ago

Digsby fails to connect to Gmail as of Feb 3rd.

jwpnet commented 10 years ago

Same here. I have 2 factor authentication with an app password for digsby and the app password is no longer being accepted.

Gouri commented 10 years ago

Same here. All my Gmail accounts are not connecting. Any solution....

kojot1234 commented 10 years ago

Is anyone investigating the issue or is the project completely dead?

Brok3nHalo commented 10 years ago

Not dead but there are currently no dedicated developers. Any investigation/development is entirely done on our personal time (which, as usual in our industry, is not much). We actively review and merge pull requests from the community though.

I had enough time to do a brief investigation of this issue but it was inconclusive. The logs don't provide in information other than gmail fails to log in and I didn't see anything about any API changes on Google that would cause this.

Anyone do any additional research into this yet?

darkmorpher commented 10 years ago

Trillian in their build 5.4.0.13 fixed some bugs related to XMPP connectivity. Could be the same issue here?

Brok3nHalo commented 10 years ago

I don't believe the gmail component uses XMPP, at least not the part I'm familiar with. It's probably going to be something changed in either the login call or response on the server side. If any developers want to take a look, digsby/src/plugins/component_gmail/gmail.py is a good place to start. Notably the authenticate method on line 258, new_token on 279, and related calls around there.

kojot1234 commented 10 years ago

I did notice that other domains based on google api work just fine. Just a wild guess but maybe the the username should be a full email address and not just the username itself, including @gmail.com. By taking a quick look at the code (src/plugins/component_gmail/gmail.py) on line 284:

Email = self.name, // should be? Email = self.emailaddress, or if the '@' character doesn't exist attach '@gmail.com' it to the self.name. I don't know exactly what self.name is so it's just a wild guess.

I don't have an dev environment set up to test it out so maybe someone else who has could give it a look.

Brok3nHalo commented 10 years ago

That sounds like a good guess, I'm not in a position to test it right now and probably won't be until the weekend. If you'd like to test it in the meantime, you can do it without a build environment by just finding the corresponding .pyo file in your digsby directory and replacing it with a modified .py source file. Note that it favors the pyo, so you'll have to remove it from the directory.

iliepandia commented 10 years ago

Hello, I have investigated this issue and the problem is that GMail stopped responding to its binary interface.

In other words "?ui=pb" returns and empty data structure. This has caused their own GmailNotifier to fail.

Please note that connecting and authenticating actually work just fine.

I've tried to look at what other UIs could be interrogated but that would mean an almost complete rewrite of the Gmail plugin to interpret the new data structure and I am not that familiar with the code to do it.

The GMail page uses "?ui=js" that seems to return a JSON formatted data. That may be good starting point into rewriting the plugin.