如何使用PHP在Openfire中创建聊天室并添加用户到聊天室?

5
我是一个新手使用XMPP服务器,我想创建多用户聊天应用程序。
我已经安装了Openfire,一对一的聊天功能可以正常工作,但是我无法使用PHP创建一个会议(聊天)室,并将用户添加到该房间中进行多人聊天。
尽管我已经安装了Openfire中可用的MUC服务插件,但我不知道如何使用PHP实现MUC服务REST/HTTP。
有没有人能提供一些用于MUC服务的示例PHP脚本,以创建聊天室并将用户添加到聊天室中?
谢谢!

我有同样的问题,有人能帮忙吗?我会支付2000美元。 - Shahid Karimi
1个回答

1
基于帮助信息:

基本HTTP身份验证

所有REST端点都受到基本的HTTP身份验证保护。

要访问这些端点,需要在头请求中发送一个Openfire管理员帐户的用户名和密码。

例如:Header:Authorization:Basic YWRtaW46MTIzNDU=(用户名:admin / 密码:12345)

Jersey客户端示例

Client c = Client.create(); c.addFilter(new HTTPBasicAuthFilter(user, password));

POST /mucservice/chatrooms 创建新聊天室的端点。

负载:聊天室 返回值:HTTP状态201(已创建)

可能的参数

参数 参数类型 描述 默认值 servicename @QueryParam 群聊服务的名称 conference 例子

Header:Authorization:Basic YWRtaW46MTIzNDU=

Header:Content-Type:application/xml

POST http://example.org:9090/plugins/mucservice/chatrooms

负载示例1(必填参数):

global-1 global 全局聊天室

PHP代码将会被测试(使用MUCservice版本0.2.3 Openfire 3.10.0):

function createRoom($naturalName, $roomName, $description) {
    $url = "http://localhost:9090/plugins/mucservice/chatrooms";
    $data = "<chatRoom>
                <naturalName>$naturalName</naturalName>
                <roomName>$roomName</roomName>
                <description>$description</description>
            </chatRoom>";
    $username = "admin";
    $password = "12345";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_PORT, "9090");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_HTTPHEADER,
                     array('Content-Type: application/xml',
                           'Authorization: Basic '.base64_encode("$username:$password")));
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $res = curl_exec($ch);
    echo "code " . $code;
    print_r($res);
    curl_close($ch);
}

createRoom("room", "room", "room");

我需要在我的XMPP上安装插件聊天室吗?我的意思是,你已经设置了一个URL,类似于http://localhost:9090/plugins/mucservice/chatrooms。请帮忙! :) - Shashank Shah
我尝试了你的代码,它返回0代码,我在这里做错了什么?据我所知,0代码意味着curl找不到我要找的服务器! :( 但是我再次传递正确的URL!为了确认,我已经成功从该特定URL创建了用户。 - Shashank Shah
在我的Openfire管理界面下,MUC服务显示为(已弃用)请使用REST API插件。通过REST接口进行MUC管理。 - Shashank Shah
嗯,我使用的是Openfire 3.10.0的MUC服务版本0.2.3。你使用的是哪个版本的MUC服务? - nguyentran
我使用的是Muc版本0.2.3和Openfire 3.10.2,但在插件部分的Muc服务描述中,它说:(已弃用)请使用REST API插件。通过REST接口进行MUC管理,所以我搜索了https://community.igniterealtime.org/blogs/ignite/2015/02/06/introducing-restapi-plugin-for-openfire,但又发现它已经被弃用了! - Shashank Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接