hoehermann / purple-gowhatsapp

Pidgin/libpurple plug-in for WhatsApp Web.
GNU General Public License v3.0
288 stars 34 forks source link

Messenger compatibility #211

Open Quentin-M opened 1 week ago

Quentin-M commented 1 week ago

Howdy,

I was just briefly looking at purple-facebook's struggles adapting to Messenger's E2EE push; and discovered that @tulir implemented support on mautrix/meta through whatsmeow (added here), the very same library purple-gowhatsapp uses. It turns out, Messenger's E2EE is just WhatsApp, with a slightly different configuration/endpoint.

It got me wondering: could purple-gowhatsapp be libpurple's savior and bring back support for Messenger with a few tweaks?

Backward support for Messenger's MQTT-based protocol is not required, as 1/ the old library can still be used for the remaining conversations still on that older system 2/ it seems anyone can simply create a new conversation with their correspondants on Messenger, which then defaults to E2EE (e.g. I now have two running conversations with my wife on Messenger, one with each system).

Apologies in advance if I am way off, I am not involved in the purple ecosystem whatsoever besides my seldom conversations with Pidgin's rw_grim.

hoehermann commented 1 week ago

Hi Quentin-M

After I noticed Meta was pushing encryption on Facebook Messenger, I figured the support on purple was done for. It was completely off my radar. Thank you for bringing it to my attention. 🙂

Indeed, the work of tulir and the people around him looks very promising. Unfortunately, using their solution in purple is not trivial. In particular, take a look at the comment here:

you must use a separate library for all the non-e2ee-related stuff like logging in. The library is currently embedded in mautrix-meta, but may be separated later.

In case later ever arrives, there is a good chance of supporting Facebook Messenger in purple again. Maybe as part of this plug-in. Or perhaps someone (that may or may not be me) comes up with a new purple-facebook. As long the log-in functions are embedded in mautrix-meta, extracting them (and keeping up with the changes) will be an immense chore. I will not do that.

Kind Regards Hermann