Чтобы получить архив сообщений, вам необходимо запросить его из учетной записи пользователя, запрашивающей архив. Как вы видите в примере XEP (Querying an archive), негде определить, к какому пользователю вы действуете. Предполагается, что пользователь посылает пакет XMPP:
<iq type='set' id='juliet1'>
<query xmlns='urn:xmpp:mam:0' queryid='f27' />
</iq>
Однако узел-XMPP-компонент реализует XEP-0114: Jabber Component Protocol. Протокол Компонента говорит в принципе, вы можете действовать только в качестве компонента или каких-либо имен пользователей из этого домена компонента:
После аутентификации, компонент может отправить строфы через сервер и получать строфы с сервера. Все строфы, отправленные на сервер ДОЛЖНЫ обладать атрибутом «from» и атрибутом «to», как в пространстве имен «jabber: server» . Часть идентификатора домена JID , содержащаяся в атрибуте from from, ДОЛЖНА соответствовать имени хоста компонента . Тем не менее, это единственное ограничение на адреса от «0», , и компонент МОЖЕТ отправить строфы от любого пользователя по имени своего хоста.
Это означает, что по соображениям конфиденциальности/безопасности «Jabber Component» не может отправлять пакет от имени основного пользователя сервера.
Итак, вы не можете подделать пакет IQ, необходимый для запроса архива MAM как пользователя из компонента, причиной которого является конфиденциальность.
Вам нужно найти другой проект для функции, которую вы хотите реализовать.