Пожалуйста, потерпите меня, если моя формулировка немного не в порядке.В основном я пытаюсь написать скрипт, который запускается на сервере, на котором работает служба ejabberd.Этот скрипт предназначен для создания комнаты чата и автоматической подписки на нее пользователей.
Я знаю, что это возможно через API REST, но я не хочу запускать это через соединение извне, но изна том же физическом сервере.
Или же в этом случае будет использоваться метод goto для выполнения вызовов API через localhost?
ОБНОВЛЕНИЕ: Как и предполагалось, я могу просто вызвать API REST через localhost.Но я все еще застрял.Вероятно, это какая-то опечатка в моей конфигурации или звонках, поэтому я поделюсь с вами тем, что я пробовал:
эй, спасибо за ваш ответ.Я получил это далеко сам, но я не получаю ожидаемый результат.
Итак, я настроил необходимую часть в своем файле yml следующим образом:
listen:
-
port: 5285
module: ejabberd_http
request_handlers:
"/rest": mod_rest
и добавил localhost к хостам.Затем я попытался получить доступ к функции REST следующим образом:
curl -X POST -i -H "Content-type: application/json" http://localhost:5285/rest/create_room -d
'
{
"name":"testroom",
"service":"mychatservice.host.com",
"host":"host.com"
}
'
И я получил такой ответ:
HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 21
Try POSTing a stanza.
Я думал, что код 200 означает, что я сделал правильно, но когда я проверял с помощью "ejabberdctl muc_online_rooms global "в нем не было ни одного.Также любая неправильная команда после базового URL вернула мне тот же ответ.Так что я делаю не так?
edit: я, конечно, также включил сам модуль отдыха:
mod_rest:
allowed_ips:
- "127.0.0.1"