Facebook聊天(XMPP)XEP 0080支持

Facebook聊天(XMPP)XEP 0080支持,xmpp,facebook-chat,x-facebook-platform,Xmpp,Facebook Chat,X Facebook Platform,我正在使用一个原型测试程序检查XMPP Facebook聊天工具X-Facebook的功能。在Gmail服务器上使用geoloc消息XEP 0080非常有效,但是当我尝试通过X-FACEBOOK发送相同的XML结构时,它会修剪消息并删除geoloc节点。 我想问是否有人知道是否可以在X-FACEBOOK中发送XEP 0080消息,如果可以,我应该使用什么结构,这样FACEBOOK聊天XMPP服务器就不会修剪GeoLoc信息 已发送XMPP geoloc消息: <message to="-1

我正在使用一个原型测试程序检查XMPP Facebook聊天工具X-Facebook的功能。在Gmail服务器上使用geoloc消息XEP 0080非常有效,但是当我尝试通过X-FACEBOOK发送相同的XML结构时,它会修剪消息并删除geoloc节点。 我想问是否有人知道是否可以在X-FACEBOOK中发送XEP 0080消息,如果可以,我应该使用什么结构,这样FACEBOOK聊天XMPP服务器就不会修剪GeoLoc信息

已发送XMPP geoloc消息:

<message to="-100002578491827@chat.facebook.com" from="4yony4@chat.facebook.com/19256ca9_4C5CC12947646" type="chat" xml:lang="en">
<event xmlns="http://jabber.org/protocol/pubsub#event">
     <items node="http://jabber.org/protocol/geoloc">
          <item id="">
              <geoloc xmlns="http://jabber.org/protocol/geoloc">
                   <lat>40.488137</lat>
                   <lon>-3.397623</lon>
                   <timestamp>2012-07-27 09:09:50 GMT</timestamp>
                   <msgType>0</msgType>
              </geoloc>
          </item>
      </items>
</event>
<body> 

</body>

40.488137
-3.397623
2012-07-27 09:09:50格林尼治标准时间
0

客户端收到的消息:

<message xmlns="jabber:client" from="-1177157556@chat.facebook.com" to="" type="chat">
    <active xmlns="http://jabber.org/protocol/chatstates"/>
 <body></body>
</message>

任何解决方案或意见都将不胜感激


嗯,将XML更改为与您发布的类似,没有pub-sub,但仍然存在相同的问题,收件人收到的消息缺少GeoLoc节点下的所有名称空间,我认为这是服务器不支持该格式的结果。我可以尝试使用IQ订户选项,但我更喜欢找到一个解决方案,我可以直接将信息发送给用户。 如果有可能的话,即使是一个很小的可能性,我也可以在Facebook服务器上从用户a向用户B发送关于GeoLoc的信息,这可能会有很大的帮助,如果不是很好,我想我将不得不接受它。
谢谢您的帮助。顺便说一句。

这些信息不一样

收到的消息只是用户聊天状态的指示器,如中所定义,与您发送的消息没有直接关系。这并不意味着第一个没有潜在地触发第二个,无论您使用什么库,都可能在您发送消息时发送了chatstate。这种类型的消息通常在聊天客户端中使用,表示与您聊天的人正在键入消息

问题可能是您发送的消息实际上是一个错误。这意味着由服务器中的PEP服务发送,而不是从客户端发送。我不知道Facebook是否支持PEP,但我猜是因为你不正确地使用了一个已知的名称空间,所以它被过滤掉了。PEP或Pubsub是发布地理位置信息的推荐方式,但要利用这些方式,您必须向服务发送IQ数据包,而不是向其他客户端发送消息

试试这个(不是说它会起作用,但至少pubsub的东西被剥离了):


40.488137
-3.397623
2012-07-27 09:09:50格林尼治标准时间
0

当我测试facebook XMPP连接时,它几乎不支持任何扩展,并且阻止了服务器上的任何自定义标记。它能够发送基本的存在,基本的信息,vCard,这就是它所能做的

Pubsub事件应发送到服务。现代XMPP服务器还支持PEP扩展,您可以将pubsub发送到服务器本身。在其他情况下,按照Robin的建议,对目标用户使用消息


我不认为facebook有任何带有pubsub的服务器。此外,我认为它仍然会过滤任何不受支持的名称空间。请证明我错了,我上次测试它已经一年多了。

我想成为皮汉的第二名。Facebook XMPP服务器似乎将消息重组为只包含消息正文、日期和时间戳。我认为他们这样做是为了使其与注释图对象保持一致

这很烦人,但我怀疑这是故意的。毕竟,他们的图形是主要问题,而不是XMPP

<message to="-100002578491827@chat.facebook.com" from="4yony4@chat.facebook.com/19256ca9_4C5CC12947646" type="chat" xml:lang="en">
   <geoloc xmlns="http://jabber.org/protocol/geoloc">
      <lat>40.488137</lat>
      <lon>-3.397623</lon>
      <timestamp>2012-07-27 09:09:50 GMT</timestamp>
      <msgType>0</msgType>
   </geoloc>
   <body> 
   </body>
</message>