从哪里获取 Ejabberd api url 和主机名
Where to get Ejabberd api url and host name
我打算使用 ejabberd 和 ReactJs 开发一个聊天应用程序。我在我们的服务器上安装了 ejabberd。我遵循了 link.
下面的 API 文档
https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#registered-users
我想在实施之前在 postman 中尝试任何 api。但是我没有从任何文档中获得 API URL 和主机名。
我的 ejabberd 服务器管理员 URL 是 http://192.168.5.242:5280/admin
此外,我想使用 https://www.npmjs.com/package/ejabberd。但是在那里我可以看到主机名的用法。
我尝试了很多端口而不是 5280。但不适合我。
But I didn't get the API URL and host name from any of the document.
您在 ejabberd 配置文件的 'listen' 部分定义端口号。例如,在我的例子中,我使用 5282 作为 mod_http_api,路径 /api:
-
port: 5282
module: ejabberd_http
request_handlers:
"/api": mod_http_api
"/bosh": mod_bosh
"/oauth": ejabberd_oauth
"/rest": mod_rest
My ejabberd server admin URL is http://192.168.5.242:5280/admin
然后,如果您添加我拥有的行,则 mod_http_api 的 url 将是 http://192.168.5.242:5282/api
作为示例调用,我使用这个 php 脚本:
<?php
$url='localhost:5282/api/registered_users/';
$login="key";
$password='secret';
$request=null;
$info=array(
"host"=>"localhost"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($info));
$output=curl_exec($ch);
curl_close($ch);
print_r($output);
?>
这是查询的结果:
$ php test.php
["user1","user2"]
正在嗅探网络流量,这是查询:
POST /api/registered_users/ HTTP/1.1
Host: localhost:5282
Accept: */*
Content-Length: 20
Content-Type: application/x-www-form-urlencoded
{"host":"localhost"}
这是回复:
HTTP/1.1 200 OK
Content-Length: 17
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type, Authorization, X-Admin
["user1","user2"]
我打算使用 ejabberd 和 ReactJs 开发一个聊天应用程序。我在我们的服务器上安装了 ejabberd。我遵循了 link.
下面的 API 文档https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#registered-users
我想在实施之前在 postman 中尝试任何 api。但是我没有从任何文档中获得 API URL 和主机名。
我的 ejabberd 服务器管理员 URL 是 http://192.168.5.242:5280/admin
此外,我想使用 https://www.npmjs.com/package/ejabberd。但是在那里我可以看到主机名的用法。
我尝试了很多端口而不是 5280。但不适合我。
But I didn't get the API URL and host name from any of the document.
您在 ejabberd 配置文件的 'listen' 部分定义端口号。例如,在我的例子中,我使用 5282 作为 mod_http_api,路径 /api:
-
port: 5282
module: ejabberd_http
request_handlers:
"/api": mod_http_api
"/bosh": mod_bosh
"/oauth": ejabberd_oauth
"/rest": mod_rest
My ejabberd server admin URL is http://192.168.5.242:5280/admin
然后,如果您添加我拥有的行,则 mod_http_api 的 url 将是 http://192.168.5.242:5282/api
作为示例调用,我使用这个 php 脚本:
<?php
$url='localhost:5282/api/registered_users/';
$login="key";
$password='secret';
$request=null;
$info=array(
"host"=>"localhost"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($info));
$output=curl_exec($ch);
curl_close($ch);
print_r($output);
?>
这是查询的结果:
$ php test.php
["user1","user2"]
正在嗅探网络流量,这是查询:
POST /api/registered_users/ HTTP/1.1
Host: localhost:5282
Accept: */*
Content-Length: 20
Content-Type: application/x-www-form-urlencoded
{"host":"localhost"}
这是回复:
HTTP/1.1 200 OK
Content-Length: 17
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type, Authorization, X-Admin
["user1","user2"]