2009-12-31 2 views
0

저는 Python으로 XMPP 봇을 작성하고 있습니다 (xmpppy 사용). 나는 (사용자의 요청 후) 그의 PubSub 상태 (분위기, 곡)를 확인하고 그와 함께 무엇인가를하고 싶다. 어떻게해야합니까?Python의 xmpp를 사용하여 PubSub에 대한 연락처를 쿼리하는 방법은 무엇입니까?

나는 그가 상태를 바꿀 때 사용자가 보내는 절을 파싱하는 방법을 알고 있지만 나는 그에게 절과 같은 절을 보내도록 강제하는 법을 모른다.

답변

3

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> 

이 같은 디스코 # 정보 요청받을 얻을 때 :

<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 해시가 올바른지 확인하는 것이 유일한 어려운 부분입니다.

+0

내 의도가 정확히 무엇인지는 모르겠지만 당신의 대답은 내가 원했던 것을 할 수 없다는 것을 지적했다.) 나는 다른 방법으로 로봇을 개발했다. 고맙습니다. – minder

관련 문제