【问题标题】:how to delete member from chat room xmpp server via php如何通过php从聊天室xmpp服务器中删除成员
【发布时间】:2015-10-26 13:19:58
【问题描述】:

我正在尝试通过 php 从 XMPP 服务器中删除聊天室成员。我正在为此使用 curl 请求。

我正在关注此文档: https://www.igniterealtime.org/projects/openfire/plugins/restapi/readme.html#delete-a-user-from-a-chat-room

$url = "http://188.***.***.***/plugins/restapi/v1/chatrooms/".$roomName."/members/".$userJID;
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/xml", "Authorization : ******")); //I am using plugin.userservice.secret key here
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");    
    $json_response = curl_exec($curl);

        $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
        curl_close($curl);

它应该返回给我 http 响应 201,但我得到了服务器的登录表单作为响应或 401(未经授权的用户)。

自上周以来我一直在尝试这样做,但在此之前没有得到任何解决方案,请帮助我。

提前感谢您的支持。

【问题讨论】:

    标签: php android web-services curl openfire


    【解决方案1】:

    请注意,如果这个问题非常具体:它与特定的 XMPP 服务器实现 (Openfire) 相关,并使用专有的非标准接口(其 REST 插件)。您正在使用 Android 环境、PHP 和/或 cURL 的事实是无关紧要的。

    当您收到 401 响应时,说明存在身份验证问题。

    正如 Roman 在下面的评论中指出的那样,您使用了错误的文档。请改用this

    Roman 的另外两个观察结果(带外):

    • “授权:”中有多余的空格字符,必须是“授权:”
    • 您应该使用的属性是 plugin.restapi.secret,而不是 plugin.userservice.secret。

    【讨论】:

    • 您可以在此处找到参考:igniterealtime.org/projects/openfire/plugins/restapi/… 上面提到的文档是针对 mucservice 插件的,现在已弃用。
    • 很好,我没有注意到不正确的文档参考。
    • @Guus 感谢您的回复,很抱歉我使用的是您提供的相同文档。我已经更新了你告诉我的两点。现在我收到 302 响应及其显示的服务器管理员登录表单。你说它与使用 curl 无关,你能告诉我点击这些端点的正确方法吗(在文档中,因为我是 php 开发人员而不是 android 开发人员我正在为应用程序创建 Web 服务)。我需要的是从 xmpp 服务器中删除一个成员(我已经通过 curl 创建了组和用户)。再次感谢。
    • 我认为,我可能需要对开放式火力服务器进行一些更改,如果需要对服务器配置进行任何更改,请告诉我。
    • 如果您使用 Openfire 3.9.3 或更低版本,您需要在路径 url 中提供用户名而不是 JID。从 3.10 开始,您还可以使用 JID。
    【解决方案2】:

    由于这个问题已经得到了很好的回答,但我希望回答 Android 特定上下文,以便其他遇到此问题的用户可以找到另一种方法。 有一个用于 android here 的 RestApiClinet 库。您可以将其直接集成为 android 模块。这是一个app 已经在使用它。你也可以看看php写的这个客户端库。

    【讨论】:

    • 感谢您的回答,这对其他人真的有帮助:)
    猜你喜欢
    • 2016-11-27
    • 2015-06-09
    • 2017-01-07
    • 2016-10-06
    • 2019-09-24
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多