Sir*_*ang 5 erlang xmpp ejabberd
我读到了关于文档https://docs.ejabberd.im/admin/api/
我想知道如何通过HTTP访问这些API.我试图访问但它总是404.
在您的ejabberd.yml中,您可以找到这样的配置
-
port: 5280
module: ejabberd_http
request_handlers:
"/websocket": ejabberd_http_ws
Run Code Online (Sandbox Code Playgroud)
启用api和oauth,
-
port: 5280
module: ejabberd_http
request_handlers:
"/websocket": ejabberd_http_ws
"/api": mod_http_api
"/oauth": ejabberd_oauth
Run Code Online (Sandbox Code Playgroud)
我们正在使api能够访问其他编程语言(JSON请求和响应)
我们正在启用oauth来提出api请求并获得响应(如果我们访问/ api,我们将只获得401个未经授权的错误)
完成此配置后,在浏览器中提供http请求.网址必须是
http://localhost:5280/oauth/authorization_token?response_type=token&client_id=Client1&scope=get_roster+connected_users
get_roster和connected_users是API端点 Clinet1是一个名称,你可以给予 response_type必须始终是令牌
一旦你点击它就会呈现一个屏幕,
输入您的管理详细信息并单击"接受"
然后在网址中你会发现类似的变化
http://localhost:5280/oauth/authorization_token?access_token=Ra9W9aRgeoUgIpN0P68SIGDaatDIVcgB&token_type=bearer&expires_in=3600&scope=get_roster%20connected_users&state=
您可以在其中看到一个访问令牌,并进行卷曲以获取连接的用户.(在终端中输入此命令)
curl -v POST -H "X-Admin: true" -H "Authorization: Bearer Ra9W9aRgeoUgIpN0P68SIGDaatDIVcgB" http://localhost:5280/api/connected_users -d '[]'
您将获得所有连接用户的Json响应.
这是你应该如何在ejabberd中进行API调用.希望这可以帮助 :)