【问题标题】:Where to get Ejabberd api url and host name从哪里获取 Ejabberd api url 和主机名
【发布时间】:2019-06-05 03:52:48
【问题描述】:

我将使用 ReactJs 使用 ejabberd 开发一个聊天应用程序。我在我们的服务器上安装了 ejabberd。我按照以下链接中的 API 文档进行操作。

https://docs.ejabberd.im/developer/ejabberd-api/admin-api/#registered-users

我想在实施之前尝试邮递员中的任何 api。但是我没有从任何文档中获取 API URL 和主机名。

我的 ejabberd 服务器管理 URL 是 http://192.168.5.242:5280/admin

另外,我希望使用https://www.npmjs.com/package/ejabberd。但是在那里我可以看到主机名的用法。

我尝试了很多端口而不是 5280。但不适合我。

【问题讨论】:

    标签: xmpp ejabberd ejabberd-module ejabberd-api


    【解决方案1】:

    但我没有从任何文档中获取 API URL 和主机名。

    您在 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
    

    我的 ejabberd 服务器管理 URL 是 http://192.168.5.242:5280/admin

    然后,如果您添加我拥有的行,您的 mod_http_api 网址将是 http://192.168.5.242:5282/api

    【讨论】:

    • 如果我使用邮递员检查 API,我应该在 url、header 和 body 中给出什么?我检查了几种试错法。但是没有人工作。请帮帮我
    • 请帮我解决这个问题
    • @KIRANKJ docs.ejabberd.im/developer/ejabberd-api/admin-api 我希望这个链接能帮到你。它拥有 ejabberd 的所有 web 服务路由
    【解决方案2】:

    作为一个示例调用,我使用这个 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"]
    

    【讨论】:

      猜你喜欢
      • 2013-11-01
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 2015-07-14
      • 1970-01-01
      • 2016-09-23
      相关资源
      最近更新 更多