首页 > 解决方案 > Ejabberd api端点private_set不会保存数据

问题描述

我正在尝试操作 ejabberd 服务器上的私有存储,我将带有 json 的 POST 发送到端点 private_set。调用 private_set 的答案是 200,body 0,表示一切正常,然后我调用另一个端点 private_get 来查询私有存储,当我最后一次调用时,存储没有更新。

{
    "user": "example",
    "host": "localhost",
    "element": "<query xmlns='jabber:iq:private'><storage xmlns='storage:bookmarks'><conference autojoin='false' jid='test@conference.localhost' name='test'><nick>example</nick></storage></query>"
}

标签: xmppejabberd

解决方案


我不知道旧版本,但至少在 ejabberd 19.02 中,Query 元素不能包含在参数中。因此,命令示例参数的文档中存在错误。此外,您忘记关闭会议元素。

试试这个:

{
    "user": "example",
    "host": "localhost",
    "element": "<storage xmlns='storage:bookmarks'><conference autojoin='false' jid='test@conference.localhost' name='test'><nick>example</nick></conference></storage>"
}

推荐阅读