
Facebook Messenger protocol in Pidgin - probinso
https://github.com/jgeboski/purple-facebook
======
wooptoo
It's a shame that Facebook removed support for XMPP in the first place. I
guess it's part of their strategy to make the world more "open" and connected.

~~~
JustSomeNobody
Not just FB. Everyone is moving (have moved) to proprietary protocols.

~~~
tracker1
XMPP wasn't a great protocol though... I'm not aware of a better option
though. I know that something over WebRTC may not be much better, but may be
the best chance of seeing something more open in the next decade again.

Every company wants their walled garden though... though there's moats stocked
with alligators and piranha around them..

~~~
stinkytaco
Do you think it's strictly that they want walled gardens? I have a feeling
more large companies would support open protocols if they provided the
features they needed with the efficiency to provide those services cost (and
battery) effectively. It seems all the many open protocols (XMPP, Web and
CalDav, etc.) are simply not efficient or feature rich enough for companies
that are in a constant features escalation war with competitors.

~~~
gh02t
I imagine it's that, but amplified by NIH syndrome. Something like "oh yeah we
_could_ do it with XMPP, but it's all complicated and stuff and if we just
built our own protocol we'd be able to do everything we'd ever want exactly
how we want it! It'll be the future!"

I've fallen victim to something similar myself many times. "Oh yeah, I could
do <this> with <tool x>, but it's ugly and not how <tool x> is meant to be
used! I'll just design and implement <tool y> myself to do exactly <this> and
it'll be the future!" It's the temptation to make something customized for
yourself and it's hard to resist. Particularly when the existing solution has
some flaws, which makes the relative cost/effort of rolling your own solution
seem lower (even when it inevitably turns out to still be quite high).

~~~
pmlnr
[https://www.facebook.com/notes/facebook-
engineering/building...](https://www.facebook.com/notes/facebook-
engineering/building-facebook-messenger/10150259350998920/)

------
xg15
What I'm worried about: The protocol is proprietary, not a public API and all
official clients can be updated by Facebook almost instantly. This means they
can make arbitrary changes to the protocol at any time without bothering the
users of official clients very much.

This library would have to keep up with all the changes or clients would
quickly stop working. So is the manpower there to do this?

~~~
strathmeyer
Well there used to be this thing called AOL instant messenger. Then people
cloned the protocol. So AOL would just start causing purposeful buffer
overflows that would take them to specific parts in their code but mess up the
people trying to imitate it. But they figured it out, and now they teach
students in class how to overcome it. The other illegal thing they taught us
was decrypting a DVD.

~~~
JustSomeNobody
This in NO way addresses "proprietary protocol".

------
apetresc
Is there any part of this plugin that is specific to Pidgin? If it's just a
libpurple plugin, it should work with Adium too, right?

~~~
ultramancool
Yeah, as well as minbif and others.

------
probinso
Appreciation to this project. When facebook updated their protocol, my
workflow and screen `real estate` were impacted in very distracting ways.

[edited to address comment]

~~~
saurik
> I wanted to appreciate this project.

You wanted to, but you don't, because...?

~~~
padraic7a
I think it's 'he wanted to' so he posted it to HN.

------
raverbashing
Is it just me or there is no actual source code there?

~~~
kaio
Wiki-Entry:

"The purple-facebook project simply back-ports the purple3 plugin to purple2
[..]"

So i guess you won't see the actual protocol implementation in this repo but
only the necessary patches.

~~~
raverbashing
Ah this makes sense, so it has only some glue code (in the .h files I guess)

------
upofadown
Awesome. Now we will be able to have a XMPP/Jabber transport that works with
Facebook. Great for sort of keeping in touch with the relatives without the
horror of actual Facebook.

~~~
lazzlazzlazz
messenger.com is a great alternative to use Messenger without the distraction
of Facebook in the background.

------
randomchars
Is the protocol documented somewhere?

~~~
pmlnr
[http://mqtt.org/](http://mqtt.org/)

~~~
drdaeman
If I get it right, MQTT is just a PubSub protocol, i.e. it essentially carries
the messages, but doesn't care about their contents.

Is there a standard on how chat layer (the content of published messages) is
implemented? (I haven't looked into source code, but guess it's not just a
plain text, but it has some structure to it.)

~~~
pmlnr
C implementation of Facebook MQTT for bitlbee:
[https://github.com/jgeboski/bitlbee-
facebook](https://github.com/jgeboski/bitlbee-facebook)

~~~
randomchars
So that's a no, as it appears there's no documentation in the repository
beyond the comments.

------
kevinSuttle
Wait a minute. I thought "Facebook Messenger" protocol was just MQTT?

