【问题标题】:Openfire: Add user with subscription status as "both"Openfire:添加订阅状态为“两者”的用户
【发布时间】:2016-08-12 15:40:01
【问题描述】:

当我使用 RestApi 添加用户时遇到问题

include "vendor/autoload.php";
$api = new Gidkom\OpenFireRestApi\OpenFireRestApi;
$api->secret = "mySecretKey";
$api->host = "HostName";
$api->port = "9090";
$api->useSSL = false;
$api->plugin = "/plugins/restapi/v1";  // plugin 

为了将用户添加到名册,我使用以下代码

$jid="xyz@domainname";
//Add to roster
$data=$api->addToRoster("abc", $jid);

哪个指向OpenFireRestApi.php,它确实具有名为addToRoster的函数

 /**
     * Adds to this OpenFire user's roster
     *
     * @param   string          $username       Username
     * @param   string          $jid            JID
     * @param   string|false    $name           Name         (Optional)
     * @param   int|false       $subscription   Subscription (Optional)
     * @return  json|false                     Json with data or error, or False when something went fully wrong
     */
    public function addToRoster($username, $jid, $name=false, $subscription=false)
    {
        $endpoint = '/users/'.$username.'/roster';
        return $this->doRequest('post', $endpoint, compact('jid','name','subscription'));
    }

所以我用过

$data=$api->addToRoster("abc", $jid,"DummyName",3);

其中 3 是订阅类型,因为两者 = 3 即 mentioned.

但是当我添加用户时,订阅类型仅显示为 none

更新

我知道subscription plugin

所以我已经安装了插件配置它

插件本身说它会自动订阅双向。

后来我又试了

$data=$api->addToRoster("abc", $jid);

哪些方面可以工作,但再次订阅只是

任何帮助将不胜感激。

【问题讨论】:

    标签: php openfire


    【解决方案1】:

    php-openfire-restapi 类有问题

    需要更改参数名称 所以做以下更改:

    //Add to roster
    $username = "username in which you want to add roster";
    $jid = "another users JID";
    $nickname= "nick name of another user";
    $subscription ="3";
    $result = $api->addToRoster($username, $jid,$nickname,$subscription);
    

    并在/src/Gidkom/OpenFireRestApi/OpenFireRestApi.php 文件中更改以下行

    public function addToRoster($username, $jid, $name=false, $subscription=false)
        {
            $nickname=$name;
            $subscriptionType=$subscription;
            $endpoint = '/users/'.$username.'/roster';
            return $this->doRequest('post', $endpoint, compact('jid','nickname','subscriptionType'));
        }
    

    这里我更改了参数名称。

    祝你好运。

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 2016-05-11
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      相关资源
      最近更新 更多