在ejabberd中休息调用mod_rest不起作用

时间:2016-06-20 12:41:46

标签: erlang ejabberd

在我的项目中你好我有发送者和接收者的JID以及消息的正文。我需要在不使用任何聊天客户端的情况下发送消息,因此我使用mod_rest以便我可以访问mod_admin_extra。我使用Ejabberd服务器14.05配置它并尝试运行以下休息呼叫

[root@centos ~]# wget localhost:5280/rest/ --server-response --post-data 'registered_users localhost'
--2016-06-20 17:03:33--  http://localhost:5280/rest/
Connecting to <<proxy ip>>... connected.
Proxy request sent, awaiting response...
  HTTP/1.0 200 OK
  Content-Type: text/html; charset=utf-8
  Content-Length: 1015
  Connection: close
  Date: Mon, 20 Jun 2016 11:33:33 GMT
Length: 1015 [text/html]
Saving to: “index.html.3”

index.html.3有以下消息,

Problem 'error function_clause' occurred executing the command.
Stacktrace: [{ejabberd_commands,'-check_access_commands/5-fun-0-',
                 [{rest,[{registered_users,[all]},{connected_users,[all]}]}],
                 [{file,"src/ejabberd_commands.erl"},{line,372}]},
             {lists,'-filter/2-lc$^0/1-0-',2,[{file,"lists.erl"},{line,1284}]},
             {ejabberd_commands,check_access_commands,5,
                 [{file,"src/ejabberd_commands.erl"},{line,371}]},
             {ejabberd_commands,execute_command,4,
                 [{file,"src/ejabberd_commands.erl"},{line,308}]},
             {ejabberd_ctl,call_command,3,
                 [{file,"src/ejabberd_ctl.erl"},{line,293}]},
             {ejabberd_ctl,try_call_command,3,
                 [{file,"src/ejabberd_ctl.erl"},{line,269}]},
             {ejabberd_ctl,process2,3,
                 [{file,"src/ejabberd_ctl.erl"},{line,218}]},
             {mod_rest,maybe_post_request,3,
                 [{file,"src/mod_rest.erl"},{line,135}]}]

在ejabberd配置文件中添加了mod_admin_extra。这是一个命令问题尚未确定。如果是,请解释如何在ejabberdctl中添加mod_Admin_extra命令我是erlang的新手,所以我很难调试因此任何帮助都会对我有益,如果你们知道除了使用mod_rest之外发送消息的更好方法,请告诉我 非常感谢

2 个答案:

答案 0 :(得分:0)

我遇到了这个问题。 ejabberd 14.05的ejabberd_commands.hrl和mod_admin_extra模块不支持我需要的命令。因此我添加了两个模块的更新版本并开始工作

答案 1 :(得分:0)

您甚至可以尝试使用命令send__message