2012-07-27 6 views
0

XMPP Facebook Chat, X-FACEBOOK의 기능을 프로토 타입 테스트 프로그램을 사용하여 체크 아웃하고 있습니다. Gmail 서버와 함께 geoloc 메시지 XEP 0080을 사용하여 훌륭하게 작동했지만 X-FACEBOOK을 통해 동일한 XML 구조를 보내려고하면 메시지를 자르고 GeoLoc 노드를 제거합니다. 누군가 X-FACEBOOK에서 XEP 0080 메시지를 보낼 수 있는지 알고 싶습니다. 그렇다면 Facebook Chat XMPP 서버가 GeoLoc 정보를 자르지 않게하기 위해 어떤 구조를 사용해야합니까?XEP 0080 지원

보낸 XMPP의 geoloc 메시지 : 클라이언트가

<message to="[email protected]" from="[email protected]/19256ca9_4C5CC12947646" type="chat" xml:lang="en"> 
<event xmlns="http://jabber.org/protocol/pubsub#event"> 
    <items node="http://jabber.org/protocol/geoloc"> 
      <item id=""> 
       <geoloc xmlns="http://jabber.org/protocol/geoloc"> 
        <lat>40.488137</lat> 
        <lon>-3.397623</lon> 
        <timestamp>2012-07-27 09:09:50 GMT</timestamp> 
        <msgType>0</msgType> 
       </geoloc> 
      </item> 
     </items> 
</event> 
<body> 

</body> 

수신 메시지 :

<message xmlns="jabber:client" from="[email protected]" to="" type="chat"> 
    <active xmlns="http://jabber.org/protocol/chatstates"/> 
<body></body> 
</message> 

모든 솔루션이나 의견이 크게 감사합니다.


음, 술집 하위하지 않고, 당신이 게시 한 유사하기 위해 XML을 변경하고, 여전히 같은 문제는받는 사람에 수신 한 메시지 내가 생각합니다 GeoLoc 노드 아래의 모든 네임 스페이스를, 부족 해당 형식을 지원하지 않는 서버 결과. IQ 구독자 옵션을 사용해 볼 수 있습니다. 사용자에게 정보를 직접 보낼 수있는 솔루션을 찾는 것이 더 좋습니다. 가능성이있는 경우, 페이스 북 서버에서 사용자 A에서 사용자 B로 GeoLoc에 관한 정보를 보낼 수있는 작은 경우조차도 큰 도움이 될 수 있습니다. 그렇지 않으면 잘 받아 들여야 할 것입니다. 도움말 BTW를위한 Thx.

답변

0

이들은 동일한 메시지가 아닙니다.

수신 된 메시지는 XEP-0085에 정의 된대로 사용자 채팅 상태를 나타내는 지표이며 보낸 메시지와 직접적인 관계가 없습니다. 그렇다고해서 첫 번째 메시지가 잠재적으로 두 번째 메시지를 방아쇠하지 못했음을 의미하지는 않습니다. 사용중인 라이브러리가 메시지를 보낼 때 채팅 메시지를 보낸 것일 수도 있습니다. 이 유형의 메시지는 채팅 클라이언트에서 채팅하는 사람이 메시지를 입력하고 있음을 나타 내기 위해 일반적으로 사용됩니다.

문제는 아마도 당신이 보내는 메시지가 실제로 PEP message 일 것입니다. 이는 클라이언트가 아닌 서버의 PEP 서비스에서 전송하기위한 것입니다. Facebook에서 PEP를 지원하는지 여부는 알 수 없지만, 알려진 네임 스페이스를 잘못 사용하여 필터링 된 것으로 추측됩니다. PEP 또는 Pubsub는 지리적 위치 정보를 게시하는 대신 IQ 패킷을 다른 클라이언트에 보내는 메시지가 아닌 해당 서비스에 보내는 데 권장되는 방법입니다.

(작동됩니다 말을하지,하지만 적어도 pubsub 물건은 제거한다) 대신이 시도 : 나는 페이스 북 XMPP 연결을 테스트 할 때

<message to="[email protected]" from="[email protected]/19256ca9_4C5CC12947646" type="chat" xml:lang="en"> 
    <geoloc xmlns="http://jabber.org/protocol/geoloc"> 
     <lat>40.488137</lat> 
     <lon>-3.397623</lon> 
     <timestamp>2012-07-27 09:09:50 GMT</timestamp> 
     <msgType>0</msgType> 
    </geoloc> 
    <body> 
    </body> 
</message> 
1

, 그것은 거의 모든 확장을 지원하지 않았고 사용자 정의 차단 서버의 태그. 기본 프레즌스, 기본 메시지, vcards를 보낼 수 있었고 그것이 할 수있는 모든 것에 관한 것입니다.

Pubsub 이벤트는 서비스로 보내야합니다. 최신 XMPP 서버는 PEP 확장을 지원하며 서버 자체에 pubsub를 보낼 수 있습니다. 다른 경우에는 Robin이 권고 한대로 대상 사용자에게 메시지를 사용하십시오.

페이스 북에 pubsub가있는 서버가없는 것 같습니다. 또한 나는 그것이 아직 지원되지 않는 네임 스페이스를 걸러 낸다고 생각한다. 제가 틀렸다고 증명해주십시오. 마지막으로 시험 한 이래로 1 년이 넘었습니다.

0

두 번째 피한하고 싶습니다. Facebook XMPP 서버가 메시지 본문, 날짜 및 타임 스탬프 만 포함하도록 메시지를 재구성하는 것처럼 보입니다. 나는 그것들을 주석 그래프 객체와 동일하게 유지하기 위해서 그렇게한다고 생각한다.

그것은 성가신 일이지만, 나는 그것이 의도적이라고 생각합니다. 결국 그래프는 XMPP가 아니라 주요 문제입니다.