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

Posted

技术标签:

【中文标题】向任何谷歌聊天用户发送邀请(可能吗?)【英文标题】:Send invitation to any user of google chats (is it possible?) 【发布时间】:2010-05-18 14:40:30 【问题描述】:

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

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

Net::XMPP::* 不提供这种可能性。邀请人只有一种方式——根据自己的xml构造

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

返回错误“服务不可用”。

我发送:

<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>

也许我迷路了,或者应该在之前(或之后..)发送另一个信息?

或者也许还有其他无需任何邀请即可发送消息的方式?

提前致谢

【问题讨论】:

【参考方案1】:

首先您需要验证您的 jid,然后您可以将消息节发送到 xmpp 服务器。仅状态通知需要订阅。

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

【讨论】:

据我所知,我的身份验证过程运行正确,请看一下我的代码,如果有错误:
  $xmpp = new Net::XMPP::客户端-&gt;new(debuglevel=&gt;2,debugfile=&gt;'SOME_FILE');我的 $xmppsid = $xmpp-&gt;SESSION-&gt;id; $xmpp-&gt;STREAM-&gt;SIDS-&gt;$xmppsid-&gt;hostname = 'gmail.com';我的@connect_status = $xmpp-&gt;AuthSend( username=&gt;$login password=&gt;$password, resource=&gt;'TALK', hostname=&gt;'gmail.com' );如果 $connect_status[0] ne 'ok' 则退出; $xmpp-&gt;进程();  
我应该发送到服务器吗?
【参考方案2】:

已修复。 我只需要发送

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

就是这样

【讨论】:

以上是关于向任何谷歌聊天用户发送邀请(可能吗?)的主要内容,如果未能解决你的问题,请参考以下文章

无法再从 Openfire 用户向 GMAIL 帐户发送聊天邀请 [关闭]

Facebook 版本 2.0 向朋友发送任何形式的邀请的可能性?并获取好友列表

使用 XMPPHP 的聊天邀请

如何在纽约接受邀请?

通过 xmpphp 邀请 gtalk 用户

不和谐.py |机器人可以生成服务器邀请链接吗?