如何第三方应用程序访问Yii2(HumHub)

I want to give a 3rd party PHP application access to Yii2 user data (HumHub) and have tried this:

    function getUserId() {
      require_once('../protected/vendor/yiisoft/yii2/Yii.php');
      $yiiConfig = require('../protected/config/common.php');
      (new humhub\components\Application($yiiConfig));
      $user = Yii::$app->user->identity;

      return $user;
    }

This does not work. There are no errors up until new humhub\components\Application($yiiConfig) but then the 3rd party app breaks with no error thrown and the function does not return anything.

I did find this solution which does not work.

Is there are reason this does not work or is there an alternate solution to getting Yii2 user data properly?

This is how to do it in HumHub V1.0

    require_once('../protected/vendor/yiisoft/yii2/Yii.php');
    $config = yii\helpers\ArrayHelper::merge(
        require('../protected/humhub/config/common.php'),
        require('../protected/humhub/config/web.php'),
        (is_readable('../protected/config/dynamic.php')) ? require('../protected/config/dynamic.php') : [],
        require('../protected/config/common.php'),
        require('../protected/config/web.php')
    );
    new yii\web\Application($config); // No 'run()' invocation!

Now I can get $user object:

   $user = Yii::$app->user->identity;

Indeed an error should be thrown, but, the error settings of your PHP may be overridden or set to not display errors.

You call undefined object Yii::$app->user->identity. The reason, from documentation because you have not initialized the Yii object. So your code should be as follows:

function getUserId() {
      require_once('../protected/vendor/yiisoft/yii2/Yii.php');
      $yiiConfig = require('../protected/config/common.php');
      (new humhub\components\Application($yiiConfig)); // try to comment this line too if it does not work
      // Add The Following Line
      new yii\web\Application($yiiConfig); // Do NOT call run() here
      $user = Yii::$app->user->identity;

      return $user;
    }