OK, it seems that there are rules to using Gtalk, and one of those rules is that any message recipient must have given me permissions to add them to my list before it will transmit my messages to their account.
In other words, in order to send mail to other Gtalk users, I have to go through the process of "adding a buddy" to MY list, they have to approve the request, and then I can send them IMs. This applies to gateways as well as other human beings. The issue isn't insurmountable, because having someone Add a Buddy... before sending/receiving IMs is not that difficult. It is frustrating when you want a completely automated system.
Also, if you want the Gtalk gateway to be able to send messages to other Gtalk users (this is why I think they added this restriction, btw), you have to allow the Gtalk IM account to add YOU to IT'S list... thereby forcing contact before messages can be transmitted and cutting off 90% of the chances for spam to be sent from automated systems to random Gtalk accounts. The unfortunate thing is that, for those situations when you want untrusted accounts to be able to communicate, you have no way to do it.
I've been contemplating ways to get around this by mapping various gateway events to eachother, but I can't find a way around the fact that Gtalk won't even PASS a message to a recipient unless the recipient has given permission to add to a buddy list. Hence, the whole process has to start with an onAddBuddyRequest() message going into the gateway, or a request from the gateway to the other end of the exchange. Once this "authentication" process has occurred, IMs can be initiated by either side and exchanged openly between the two endpoints with no issues.
I'm still thinking about how to make this work, but it just may be that, for human interaction, a request to "let me add you to my list" is the starting place for this system, and for automated outbound gateway messages it's going to have to check it's list and request approval first. It'll take a while, but I'm sure we'll figure it out...
Laterz!
i'm working on this as well.
have you tried working with these:
helper = getGatewayHelper("JabberBot");
add_result = helper.addBuddy('someuser@gmail.com','user','');
It seems like adding this to the Application.cfm for this app makes it work as expected:
<cfif not structKeyExists(application,"accept_all")>
<cfset myHelper = getGatewayHelper("gtwy_name_from_cfadmin")>
<cfset myHelper.setPermitMode("PERMIT_ALL")>
<cfset application.accept_all = true>
</cfif>
Can you test and verify this?
Laterz!