【发布时间】:2014-07-08 17:17:57
【问题描述】:
我正在尝试了解 ejabberd 和 erlang...
我不想做的第一件事是实现我自己的一组 REST 调用来控制来自另一台服务器的 ejabberd。
例如对于这个请求:
POST /custom/register HTTP/1.1
Host: some.server.com:8088
Cache-Control: no-cache
{"username":"user","host":"test.com","password":"pass1"}
我想注册新的 Jabber 用户,所以我创建了这个 ejabberd 模块:
-module(mod_test).
-author('').
-vsn('0.1').
-behavior(gen_mod).
-export([start/2, stop/1,process/2]).
%%
%% Includes
%%
%% base ejabberd headers
-include("ejabberd.hrl").
%% ejabberd compatibility functions
-include("jlib.hrl").
%% ejabberd HTTP headers
-include("web/ejabberd_http.hrl").
start(_Host, _Opts) ->
ok.
stop(_Host) ->
ok.
process(["register"], _Request) ->
Data = _Request#request.data,
{200,[],Data}.
并在 ejabberd.cfg 中添加了 http 侦听器,我已经能够获取包含发布数据的响应,但是,我无法理解如何从数据中提取值。
例如,我希望变量 Username 将获取 POST 数据中“username”键(“user”)的值。
提前致谢, 马坦。
【问题讨论】: