[jdev] Using Net::Jabber to authenticate to Google Talk

David Eisner deisner at gmail.com
Fri Jun 29 11:31:16 CDT 2007

I'm trying to use Net::Jabber in a perl script to authenticate to a
Google Talk account.  I've run into a few problems and solved them,
but now I'm stuck.  Here's the issue:

I'm able to connect to the server and successfully negotiate the TLS
connection. However, the authentication is failing with an
<invalid-authzid/> failure:

    XML::Stream: Read: buff(<failure

After examining Pidgin's successful authentication, it looks like I
need to add an additional attribute to the auth element.  Currently,
Net::XMPP::Protocol.pm is sending this in SASLSendAuth():

    XML::Stream: Send: (<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl'
    mechanism='PLAIN'>ZG[ snip ]bjI1</auth>)

According to Google (and this is what Pidgen does), I need to set the
"client-uses-full-bind-result attribute" to "true" [1]:

     <auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl'
               ... name and password information

Looking at SASLSendAuth(), it's not clear I can add the attribute.
Does the Net::XMPP::Namespaces documentation have a prayer of helping
me in this case?



[1] http://code.google.com/apis/talk/jep_extensions/jid_domain_change.html

More information about the JDev mailing list