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 であるため、ユーザー名がプログラムに認識されていないためです。これに関するGoogleの推奨事項が何であるかはわかりません。情報を見つけることができませんでした。
とにかく、XMPP サーバーに対して正しく認証されると仮定すると、他の XMPP サーバーと同じように動作するはずです。
gtalk XMPP 実装について私が発見したいくつかのことは、あなたや他の人を助けるかもしれません:
- 接続するサーバーは、talk.google.com または xmpp.google.com です。
- 要素の「to」属性は
<stream:stream>
、サーバーアドレスではなく「gmail.com」である必要があるようです
- サーバーが使用する証明書は、サーバー アドレスではなく「gmail.com」からのものとして検証する必要があります (TLS の開始時)。
- このページが役立つ場合があります: https://developers.google.com/cloud-print/docs/rawxmpp (ステップ 2 までのすべて)
これを何にコーディングしているのかを知らなければ、質問に直接回答することは困難です。あなたが私のようで、ゼロから XMPP クライアントを実装しているのであれば、幸運を祈るしかありません (長い道のりになるでしょう)。ただし、負担を軽減するために XMPP フレームワークを使用している場合は、ほとんどのフレームワークに gtalk を処理するための機能が組み込まれているはずです...