0
我正在Python中編寫一個XMPP機器人(使用xmpppy)。我想(根據用戶的請求)檢查他的PubSub狀態(心情,調整)並對它做些什麼。我怎麼做?如何使用Python的xmpp查詢其PubSub的聯繫人?
我知道如何時,他改變狀態,但我不知道怎麼逼他給我這樣的節解析由用戶發送節。
我正在Python中編寫一個XMPP機器人(使用xmpppy)。我想(根據用戶的請求)檢查他的PubSub狀態(心情,調整)並對它做些什麼。我怎麼做?如何使用Python的xmpp查詢其PubSub的聯繫人?
我知道如何時,他改變狀態,但我不知道怎麼逼他給我這樣的節解析由用戶發送節。
閱讀XEP-163。從本質上講,你需要實現實體帽(XEP-115)的發送端,讓你發送你這樣的存在:
<presence from='[email protected]/home'>
<c xmlns='http://jabber.org/protocol/caps'
hash='sha-1'
node='http://example.com/MYBOT'
ver='/FpawanrJ31ymsv4ApCMGcyJmUk='/>
</presence>
當你得到這樣一個disco#info請求:
<iq to='[email protected]/home'
id='disco1'
from='example.net'
type='get'>
<query xmlns='http://jabber.org/protocol/disco#info'
node='http://example.com/MYBOT#/FpawanrJ31ymsv4ApCMGcyJmUk='/>
</iq>
您與功能列表迴應您實現:
<iq from='[email protected]/home'
id='disco1'
to='example.net'
type='result'>
<query xmlns='http://jabber.org/protocol/disco#info'
node='http://example.com/MYBOT#/FpawanrJ31ymsv4ApCMGcyJmUk='>
<identity category='client' type='bot' name='MYBOT'/>
<feature var='http://jabber.org/protocol/mood+notify'/>
<feature var='http://jabber.org/protocol/tune+notify'/>
</query>
</iq>
添加+通知要含蓄地訂閱到每個節點的名稱,並添加生成的字符串作爲特徵, 如上。確保出站狀態下的SHA-1散列正確是唯一難以解決的問題。
不正是我的意思,但你的答案指向我,我想要的東西不能做)和我公司開發的機器人的其他方式。謝謝。 – minder 2010-01-05 09:43:31