我正在实现一个xmpp客户端(现在只用于gtalk)。
我开始按OAuth 2.0 Authorization所述获取OAuth2令牌。我也在寻找一些有关如何在获得令牌后连接到gtalk服务器的帮助。我已阅读the example,但不确定如何在GAE上实施SASL auth。
接下来,如何让它像真实用户可以聊天的聊天客户端一样工作。我看到examples使用了我可以制作聊天机器人,以及其他examples要求用户输入用户名和密码才能聊天。
但我的想法是将Google的身份验证用于我的GAE应用,然后让我的应用就像真正的gtalk用户的聊天客户端一样。 请指出如何实现这一目标的正确方向。
答案 0 :(得分:0)
我认为在实施gtalk XMPP客户端时,我遇到了类似的障碍。一切都很顺利,检索访问令牌,但后来我来到这一部分:
(取自https://developers.google.com/talk/jep_extensions/oauth):
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
mechanism="X-OAUTH2"
auth:service="oauth2"
xmlns:auth="http://www.google.com/talk/protocol/auth">
base64("\0" + user_name + "\0" + oauth_token)
</auth>
它要求user_name。 这是你遇到的那种问题吗?我个人在这一点上遇到了障碍,因为很明显,因为它是OAuth,程序员不知道用户名。我不确定谷歌对此的建议是什么,我一直无法找到任何信息。
无论如何,假设您可以正确地对XMPP服务器进行身份验证,它应该像任何其他XMPP服务器一样。
我发现的有关gtalk XMPP实现的一些内容可能对您或其他人有所帮助:
<stream:stream>
元素的“to”属性看似需要是“gmail.com”而不是服务器地址如果不知道你在编写什么内容,就很难直接回答你的问题。如果你像我一样,并且从头开始实施XMPP客户端,我只能祝你好运(这将是一个漫长的旅程)。但是,如果您正在使用XMPP框架来减轻负担,那么大多数框架都应该有内置的东西来处理gtalk ......