Ticket #5600 (closed defect: fixed)

Opened 7 months ago

Last modified 3 months ago

Facebook XMPP support

Reported by: klausi Owned by:
Priority: high Milestone: 0.14
Component: Core Version: hg
Severity: major Keywords:
Cc: https://launchpad.net/~mgol, michal@… Blocked By:
OS: All Blocking:

Description

Bug description

Facebook chat now offers direct support to connect via XMPP, but this is not possible with Gajim (works with Pidgin).

Steps to reproduce

You need to have a facebook account. Add a new account in Gajim and use the connection settings from  http://www.facebook.com/sitetour/chat.php

Software versions

OS version: Ubuntu 9.10

Attachments

facebook_gajim.log (20.3 KB) - added by klausi 7 months ago.

Change History

  Changed 7 months ago by ts33kr

Provide a complete XML log of a connection attempt, please.

Changed 7 months ago by klausi

  Changed 7 months ago by klausi

Added the output of the XML console, recorded during ca. 10 minutes.

  Changed 7 months ago by Zash

Loading the contact list is enormously slow, and I think someone mentioned that it doesn't support roster versioning.

  Changed 7 months ago by klausi

Pidgin loads the contact list in 3 seconds, so either Pidgin and Facebook do something non-standard or Gajim does something wrong.

  Changed 7 months ago by https://launchpad.net/~mgol

  • cc https://launchpad.net/~mgol added

  Changed 7 months ago by nijel

  • cc michal@… added

follow-up: ↓ 10   Changed 7 months ago by asterix

the problem is this one:

<!-- Out -->
<iq xmlns="jabber:client" type="get" id="106">
<query xmlns="jabber:iq:roster" ver="" />
</iq>

<!-- In -->
<iq from="myname@chat.facebook.com" to="myname@chat.facebook.com/Gajim_c5d25c7c_47F4FFAF217AC" id="106" type="error">
<query xmlns="jabber:iq:roster" ver=""/>
<error code="501" type="cancel">
<feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>

facebook server doesn't like we include ver="" in our roster query. But XEP-0237 (Roster versioning) says:

If a client supports roster versioning, it MUST include the 'ver' element in its request for the roster

So clearly it's a bug in their server. Of course we could workarround it by checking <stream:features>, but in this case we don't really follow the XEP...

  Changed 7 months ago by Yann Leboulanger <asterix@…>

  • status changed from new to closed
  • resolution set to fixed

(In [31cb58641c1d]) [Mattj] Fix connection to facebook server that don't understand ver="" in roster query. Fixes #5600

  Changed 7 months ago by sonny

Have been reported on the facebook bug tracker:  http://bugs.developers.facebook.com/show_bug.cgi?id=8744

in reply to: ↑ 7   Changed 4 months ago by http://mike3050.myopenid.com/

Replying to asterix:

the problem is this one: {{{ <!-- Out --> <iq xmlns="jabber:client" type="get" id="106"> <query xmlns="jabber:iq:roster" ver="" /> </iq> <!-- In --> <iq from="myname@…" to="myname@…/Gajim_c5d25c7c_47F4FFAF217AC" id="106" type="error"> <query xmlns="jabber:iq:roster" ver=""/> <error code="501" type="cancel"> <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/> </error> </iq> }}} facebook server doesn't like we include ver="" in our roster query. But XEP-0237 (Roster versioning) says: {{{ If a client supports roster versioning, it MUST include the 'ver' element in its request for the roster }}} So clearly it's a bug in their server. Of course we could workarround it by checking <stream:features>, but in this case we don't really follow the XEP...

i think your are right.

  Changed 3 months ago by anonymous

The facebook xmpp server answer is which is in addition fully compatible with SPAM LINK and their development: <iq from="myname@c" to="myname@c/resource" id="106" type="error"> <query xmlns="jabber:iq:roster" ver=""/> <error code="501" type="cancel"> <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/> </error> </iq>

  Changed 3 months ago by dreiss

Hey Gaijim developers. I just finished pushing out an update to the Facebook server that resolves the issue. You should be able to revert your workaround if you want. If you have problems, you can comment on the bugzilla link that sonny posted.

  Changed 3 months ago by asterix

great! Thanks! But we'll keep our code as is. It's a good idea to not send ver= if server doesn't support roster versionning.

Add/Change #5600 (Facebook XMPP support)

Author


E-mail address and user name can be saved in the Preferences.


Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Next status will be 'needinfo'
 
Note: See TracTickets for help on using tickets.