Differences between revisions 45 and 46
Revision 45 as of 2015-05-27 07:12:08
Size: 8922
Editor: dx
Comment: mention in the title that it's the old deprecated method
Revision 46 as of 2015-09-04 22:17:40
Size: 6611
Editor: host164
Comment: remove oauth instructions
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
Facebook offers (or offered?) an XMPP gateway to their service. It is currently in the process of being discontinued, but '''might still work with the old username/password method''' described below in this page. Facebook offers (or offered?) an XMPP gateway to their service. It is currently in the process of being discontinued, but '''might still work with the username/password method''' described below in this page.
Line 6: Line 6:
Some of the instructions in this page might be outdated. YMMV. '''OAuth does not work. Disable it'''
Line 13: Line 13:

You can then connect either using OAuth, or the old way (with a password):

=== Using OAuth ===

This method might not work anymore.

{{{#!irc
12:12:54 <wilmer> account add jabber wilmer@chat.facebook.com
12:12:54 <root> Account successfully added with tag fb
12:12:54 <root> You can now use the /OPER command to enter the password
12:12:54 <root> Alternatively, enable OAuth if the account supports it: account fb set oauth on
12:13:03 <wilmer> acc fb set oauth on
12:13:03 <root> oauth = `on'
12:13:06 <wilmer> acc fb on
12:13:06 <root> fb - Logging in: Starting OAuth authentication
}}}

Now, like with twitter, you can authenticate with Facebook using your web browser and allow !BitlBee to use your account, without giving your password to !BitlBee. Check for a received private message with a URL to facebook. Once you complete this, login will continue:

{{{#!irc
12:19:23 <root> fb - Logging in: Requesting OAuth access token
12:19:25 <root> fb - Logging in: Connecting
12:19:25 <root> fb - Logging in: Connected to server, logging in
12:19:25 <root> fb - Logging in: Converting stream to TLS
12:19:26 <root> fb - Logging in: Connected to server, logging in
12:19:26 <root> fb - Logging in: Authentication finished
12:19:27 <root> fb - Logging in: Server claims your JID is `-1278655042@chat.facebook.com' instead of `wilmer@chat.facebook.com'. This mismatch may cause problems with groupchats and possibly other things.
12:19:27 <root> fb - Logging in: Authenticated, requesting buddy list
12:19:28 <root> fb - Logging in: Logged in
}}}

As you can see, during login the server will tell you your real (numeric) XMPP username. It might be a good idea to update your account settings with this information using:
{{{
acc fb off
acc fb set username -1278655042@chat.facebook.com
acc fb on
}}}

OAuth is likely to work better on public servers than the old authentication method described below. Also, for this method you shouldn't have to create a Facebook username. But most important of all, OAuth will give the !BitlBee server permission to use your Facebook account just for chat. Even if your account information leaks, it won't provide access to any other part of your Facebook account.

=== The old way (with a password) ===

Setting up a Facebook account in BitlBee (old, deprecated method)

Facebook offers (or offered?) an XMPP gateway to their service. It is currently in the process of being discontinued, but might still work with the username/password method described below in this page.

OAuth does not work. Disable it

Instructions to use the newer bitlbee-facebook plugin are available here

Connecting

First, you do need to have a Facebook username.

Important: You will have to use all lowercase letters for your Facebook username in Bitlbee, but not on Facebook itself. E.g. your username on Facebook can be "Someone", but in Bitlbee, you'll have to use "someone".

   1 23:44:32 <wilmer> account add jabber yourusername@chat.facebook.com "yourpassword"
   2 23:44:32 <root> Account successfully added
   3 23:44:42 <wilmer> account facebook set nick_format %full_name
   4 23:44:42 <root> nick_format = `%full_name'
   5 23:44:43 <wilmer> account on
   6 23:44:44 <root> jabber(wvdgaast@chat.facebook.com) - Logging in: Connecting
   7 23:44:44 <root> jabber(wvdgaast@chat.facebook.com) - Logging in: Connected to server, logging in
   8 23:44:45 <root> jabber(wvdgaast@chat.facebook.com) - Logging in: Authentication finished
   9 23:44:45 <root> jabber(wvdgaast@chat.facebook.com) - Logging in: Server changed session resource string to `BitlBee_5d9293ae_4870E52387B28'
  10 23:44:46 <root> jabber(wvdgaast@chat.facebook.com) - Logging in: Authenticated, requesting buddy list
  11 23:44:47 <root> jabber(wvdgaast@chat.facebook.com) - Logging in: Logged in

If you're getting authentication failures, try logging out and back into the Facebook website. If the problem persists, try connecting using OAuth for at least one time (see topic above), as this seems to fix the problem in some cases.

This will probably appear as an "application" called "Rtgw_xmpp_username_password_login" in your facebook account settings, which probably means "Realtime gateway xmpp username/password login"

Numeric usernames

All contacts have numeric handles, which makes for very ugly usernames by default, since nicknames are generated from the IM handle. By setting the nick_format account setting to %full_name, like this:

account fb set nick_format %full_name

You need to reconnect to see the changes:

account fb off
account fb on

Enter: help nick_format or help set nick_format for more detailed information on what this setting does and what its parameters are.

By default nicks will be entirely lowercased. It can be easier to distinguish names if you use the capitalisation Facebook applies to names. This is not true CamelCase, but close. To turn lowercasing of nicks off enter:

set lcnicks off

Alternatively, there are scripts that automatically rename numeric handles for some IRC clients.

  • Irssi users can use this script to rename the contacts. Note that this script can translate some non-ASCII characters to something more IRC-friendly, whereas the BitlBee setting will just strip everything non-ASCII.

  • Weechat users can use the facebook-rename script to automatically rename any user who joins with a numerical name. Note that your Bitlbee server handle must be named 'bitlbee', or you'll have to change the "bitlbeeServer" parameter value on the top of the script to your handle name.
    This script, like the BitlBee setting, will simply strip everything non-ASCII.

I get nothing after "Logging in: Authenticated, requesting buddy list"

This is a problem with Facebook, not with BitlBee. It's especially likely that you get this error on public servers. The problem's caused by security measures on Facebook's side. They keep track of the IP addresses from where you've used their website in the past, and often restrict access to your account via their XMPP server to just those IP addresses. Most new users had used facebook chat previously only from their home/office etc and facebook probably keeps a log of all IPs that were used to access that account. And, when you access your account from a public server (which is located in a different country/continent for most of users), facebook refuses to let you in. (Gmail/gtalk do similar tracking except that instead of refusing user to login, they flag a warning and prompt user to change password in case the access sounds malicious). If you get this error, you can try to log into Facebook (via an SSH tunnel, for example) from the IP address that also hosts the BitlBee instance.

But if you use a public BitlBee server, unfortunately there's not much you can do. BitlBee can't offer any help with this since that could be seen as a violation of their terms of service. Fortunately not all accounts are affected by this, several people have reported that they can log into Facebook XMPP from wherever they want. Possibly accounts get unlocked once they're used from many places (i.e. different IPs) already. You can try logging in to facebook web chat from different IPs (maybe office, home, university) a few times before it lets you login from a public bilbee server.

Note: It seems that this should no longer happen, and most likely Facebook XMPP will now allow connections from any IP address, after verifying the connection attempt on their website.

Note2: If this does still happen to you, try using OAuth as described above.

I can't set myself as away.

Yes. That has nothing to do with BitlBee though, it's a well-known limitation of the very poor XMPP service offered by Facebook.

Lost messages

You may have trouble either sending or receiving messages, which otherwise show up in the web interface. We assume this also is Facebook's fault (see above) though if you can prove otherwise, feel free to reopen this bug report to submit a patch.

Missing Contacts

This is also a Facebook issue, and you'll see the same problem using other XMPP clients. In particular, mobile contacts that are "online - mobile" will (usually) show up, but mobile contacts that are "idle" won't, even though you can send them messages from the web interface.

BitlBee Wiki: HowtoFacebookXMPP (last edited 2015-12-04 15:44:45 by dx)