Archive for category Facebook

New Face Opt-In security feature breaks plugin

Facebook have recently announced a new security feature to Facebook to “help you keep your account and information secure.” Unfortunately it can cause the Facebook plugin to stop working. So what’s happening about it?

At the moment, I’m rewriting the plugin to use the new XMPP protocol that Facebook have provided. (You can already start using it yourself if you like but you’ll miss out on features such as larger buddy icons, status messages, notifications, group/friend list management). I’ve been trying to work on it for a while, but due to my fiancée being in hospital for many weeks there’s been a bit of a personal delay :)

The other thing you, the user can do, is to tweak the hidden settings of the plugin to work around the new security feature. If you close down Pidgin, edit your .purple/accounts.xml file, find your browser’s user-agent, and paste it into your accounts.xml in the line
<setting name=’user-agent’ type=’string’>YourUserAgentHere</setting>
then Facebook will think that your browser is the one you normally use and should let you pass.
The other alternative of course is to disable (or not opt-in to) this new opt-in feature, but that one’s up to you.

3 Comments

XMPP Facebook Chat

I get a lot of complaints from people who say that the Facebook Chat plugin for Pidgin is “flakey” and disconnects a lot. I’d just like to say, “Its not my fault!” :)
I was talking on the phone to someone at Facebook and asked them if they used my plugin. They said “no, I don’t use the public one its really buggy but I am beta testing our new interface internally which is a lot better.” Once he found out that I actually wrote the plugin, he did a bit of a turnaround and went on to explain that the server software isn’t really the greatest, that it puts a heavy load on their servers and that it was actually all their fault that my plugin was so bad :)

So, after a bit of snooping around, I discovered the details of the XMPP servers. You can even (almost) connect to them. For now, it looks like you have to be authorized in their beta programme (or probably just be working at Facebook) to be able to use it.

The XMPP server is running at chat.facebook.com:5222 and it uses DIGEST-MD5 for authentication as well as something called “X-FACEBOOK-PLATFORM” for SASL. In Pidgin you can set up the account by using your username, with the domain chat.facebook.com, disabling the “Require SSL/TLS” option in the advanced tab. Doesn’t look like its working with s2s yet, but hard to tell without being able to log in.

So give it a go, maybe your account slips through the cracks and you can log in. Will been keen to hear from anyone about their successes/failures with this.

6 Comments

Facebook Usernames

Facebook have recently posted on their blog that it is now possible to log into Facebook using your Facebook username.

I’ve just had a check and it’s possible to do the same with the Pidgin/Adium Facebook plugin. Not much of an issue if you’ve already got your account set up in Pidgin/Adium already, but hey, might save you a few keypresses next time you do set up an account :)

No Comments

pidgin-facebookchat v1.51 important changes

By the time you read this, I’ll have come out with a new version of the pidgin-facebookchat plugin. There are some significant changes that downstream packagers will want to pay attention to.

The main one you’ll bump into, is that the plugin now uses the json-glib library. It’s included in svn if you don’t want to compile it yourself, but it’ll be good to make a package for your distro to include it, since not all distro’s have it. From now, we’ll be moving over the string-parsing code to use the new json-glib stuff. The buddy list has been the first thing ported over, and by the next version we’ll have moved all the code over to using it.

The other important change is that the plugin can use zlib for requesting compressed data from the Facebook servers. gzip content encoding is nothing new, but it was a P.I.T.A. to code up in C. To enable it, you’ll need to use the -DHAVE_ZLIB compiler flag. I’ve found that the data savings are around 75%, so you’ll make your fellow distro-users happy by enabling it.

No Comments

Voice chat in Facebook Chat???

So was looking through the debug logs for Facebook chat and stumbled upon this:

"enableVC":false

in all the users properties. Does VC stand for voice chat? Lets wait and see :)

Edit: It gets even better. There’s lots of “POPOUT_TYPE_VIDEOCHAT” and “if (this.inVideoChat)” messages in the source code in the Facebook Javascript.

1 Comment

Pidgin-FacebookChat v1.50

So I’ve just put out an update for Pidgin-FacebookChat, the Facebook chat plugin for Pidgin and thought I should do a bit more of a writeup than what’s in the changelog.

One of the more important features is that there should be a much lower bandwidth usage for some people.  Unfortunately, the plugin was getting into a rapid loop in the fetch-message routine which would cause the www.facebook.com/home.php page to be downloaded lots and lots (and lots) of times in quick succession.  I’m not 100% sure of the reason behind this, but it seemed to be worse the closer you are to the Facebook servers.

To try and work around this, I’ve added in a 1 second delay to the re-request of messages, as well as instead of grabbing the data that was needed from the /home.php page, grabbing it from the smaller “pop-out chat” window.  So there’s now less stuff to download, and download less frequently.  I hope that fixes it :(  I’m genuinely sorry to those people who ended up having to pay for extra bandwidth charges :(

On a more positive note, there’s another minor feature in the plugin that wasn’t in the changelog: the plugin now sends the “Accept-Language” HTTP header.  Thats the techy way of saying that you should now be receiving error messages from the Facebook servers in the same language that you look at Pidgin in.   While most of the pidgin-facebookchat plugin hasn’t been translated (unlike the Skype plugin), the error messages from the Facebook servers would appear to be in your language.  From the looks of it, Facebook were doing an IP address detection to work out what country you were in, and giving error messages in the language of that country.  Great 99% of the time, but really hard to use when you’re, say, on a trip overseas in a country that you can’t read the language of.

The other feature in this version of the plugin is to be able to force yourself to be in the ‘idle’ state on Facebook chat.  Previously, you had to configure your Pidgin to report your idle status after 5 minutes but now there’s an “idle” status type in the selection.  This should help with people who set their status to something other than “online” in Pidgin, no more messages from people who think you’re ignoring them.  To be honest, I didn’t actually get much of a chance to test this feature, so let me know you’re success stories with it.

So go download the plugin, and let me know what you think :)

No Comments