Отправить приглашение любому пользователю чатов Google (возможно ли это?) - PullRequest
1 голос
/ 18 мая 2010

Я пытаюсь реализовать простой код на Perl, который должен просто получать / отправлять сообщения с / на учетные записи gtalk. Я использую Net :: XMPP :: *

модули. Все отлично работает для пользователей, которые являются моими друзьями (в моем списке «друзей»). Но я не могу отправить сообщение неизвестному пользователю. Я знаю, что для этого случая я должен сначала отправить приглашение, но

Net :: XMPP :: * не предоставляют такую ​​возможность. Есть только один способ пригласить человека - создать свой собственный xml согласно

к протоколу "Переговоры о сеансе XEP-0155". Но это не работает правильно. Когда я отправляю 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>

Может быть, я что-то потерял или должен отправить другую информацию до (или после ..)?

А может быть, есть другой способ отправить сообщение без приглашения?

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 19 мая 2010

Fixed. Мне просто нужно отправить

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

Вот и все

0 голосов
/ 18 мая 2010

Сначала вам нужно аутентифицировать свой jid, затем вы можете отправить сообщение на сервер xmpp. Подписка требуется только для уведомлений о присутствии.

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