我正在构建一个监视朋友在场但不需要可见的机器人。 我试图使用优先级,show,类型设置存在所有知识值,但没有成功。 是否可能是无形的,只是接收在线状态通知?
谢谢!
答案 0 :(得分:2)
见XEP-0126: Invisibility,第3.1节:
<iq from='bilbo@tolkien.lit/shire' type='set' id='inv1'>
<query xmlns='jabber:iq:privacy'>
<list name='invisible'>
<item action='deny' order='1'>
<presence-out/>
</item>
</list>
</query>
</iq>
答案 1 :(得分:0)
查看rfc。 Presence具有订阅状态。如果您的机器人订阅了您的用户,但您的用户不是,则不会通知机器人的存在。
换句话说,你的机器人应该发送:
<presence to="user@example.com" type="subscribe" />
然后是用户的授权,
<presence to="bot@example.com" type="subscribed" />
现在机器人将从用户那里获得存在,但不是相反。
答案 2 :(得分:0)
要设置变为不可见的状态,您必须发送类型为“不可见”的状态。
<presence type="invisible"/>
这是代码(在ios中):
XMPPPresence *presence = [XMPPPresence presenceWithType:@"invisible"];
[[self xmppStream] sendElement:presence];
我使用此代码将我的状态设置为“隐身”。 有关详细信息,请阅读http://xmpp.org/extensions/xep-0018.html#sect-id86210
上的文档答案 3 :(得分:0)
最后我从Facebook了解到,不可能通过XMPP命令实现隐身:https://developers.facebook.com/bugs/315067461919373。另请参阅限制下的https://developers.facebook.com/docs/chat/。