向任何谷歌聊天用户发送邀请(是否可能?)

时间:2010-05-18 14:40:30

标签: perl gmail xmpp google-talk invitation

我尝试在perl上实现简单的代码,它应该从/向gtalk帐户发送/发送消息。我使用Net :: XMPP :: *

模块。一切都适合用户,他们是我的朋友(在我的“好友”列表中)。 但我无法向未知用户发送消息。我知道,对于这种情况,我必须首先发送邀请,但

Net :: XMPP :: *不提供这种可能性。邀请人只有一种方法 - 根据

构建我自己的xml

到“XEP-0155 Stanza Session Negotiation”协议。但这不正确。当我将xml发送到服务器时,它

返回错误“service-unavailable”。

我发送:

<message to='TEST@gmail.com'>
 <sxde xmlns='http://jabber.org/protocol/sxde'
   xmlns:sxde='http://jabber.org/protocol/sxde#metadata'
   session='0AEF4278DC4B6577'
   id='b'>
  <negotiation>
    <invitation>
      <feature var='http://jabber.org/protocol/whiteboard' />
    </invitation>
  </negotiation>
 </sxde>
</message>

在我的消息之前。

解答:

<message from='' to='ME@gmail.com/TALKCDDCCE63' type='error'>
  <sxde id='b' session='0AEF4278DC4B6577' xmlns='http://jabber.org/protocol/sxde' xmlns:sxde='http://jabber.org/protocol/sxde#metadata'>
    <negotiation>
      <invitation>
        <feature var='http://jabber.org/protocol/whiteboard'/>
      </invitation>
    </negotiation>
  </sxde>
<nos:x value='disabled' xmlns:nos='google:nosave'/>
<arc:record otr='false' xmlns:arc='http://jabber.org/protocol/archive'/>
<error code='503' type='cancel'>
    <service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error>
</message>

也许我失去了smth或者应该在之前(或之后)发送另一个信息?

或许还有其他方式可以在没有邀请的情况下发送消息?

提前致谢

2 个答案:

答案 0 :(得分:0)

首先您需要对您的jid进行身份验证,然后您可以将消息节发送到xmpp服务器。只有在线通知时才需要订阅。

<message to='ME@gmail.com/TALKCDDCCE63' type='chat' xmlns='jabber:client'>
<body>TEST MESSAGE</body>
</message>

答案 1 :(得分:0)

固定。 我只需要发送

$xmpp->Send("<presence to='$address' type='subscribe' /></presence>")

这就是全部