Comment to 'Help with creating public API'
  • We've just updated UNA API documentation describing new API functionality how to authenticate with secret key

    https://unacms.com/wiki/Dev-API#api-keys-authentication

    • Thank you for your response. I was able to resolve the issue after addressing a PHP Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /home/ext/sites/una/modules/base/general/classes/BxBaseModGeneralFormsEntryHelper.php:196.

      • Thank you for the feedback, could you please more details on how to reproduce the issue and what is your UNA version ?

        • UNA Version: 14.0.0-A3

          When using the curl example on the DEV API page:

          An error occurs:

          PHP Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /home/ext/sites/una/modules/base/general/classes/BxBaseModGeneralFormsEntryHelper.php:196
          Stack trace:
          #0 /home/ext/sites/una/modules/base/general/classes/BxBaseModGeneralModule.php(1230): BxBaseModGeneralFormsEntryHelper->addData()
          #1 /home/ext/sites/una/inc/classes/BxDolRequest.php(132): BxBaseModGeneralModule->serviceEntityAdd()
          #2 /home/ext/sites/una/inc/classes/BxDolRequest.php(57): BxDolRequest::_perform()
          #3 /home/ext/sites/una/inc/classes/BxDolService.php(51): BxDolRequest::processAsService()
          #4 /home/ext/sites/una/api.php(72): BxDolService::call()
          #5 {main}
            thrown in /home/ext/sites/una/modules/base/general/classes/BxBaseModGeneralFormsEntryHelper.php on line 196
          

          Temporary Fix:

          To resolve this issue, check for the type of the $aValues variable passed to the addData method. If it is not an array, cast it to an array.

          In /home/ext/sites/una/modules/base/general/classes/BxBaseModGeneralFormsEntryHelper.php, modify the addData method as follows:

          public function addData($iProfile, $aValues, $sDisplay = false)
          {
              if (!is_array($aValues)) {
                  $aValues = (array) $aValues;
              }
              // Rest of the method implementation
          }
          

          This modification ensures that $aValues is always treated as an array, preventing the fatal error and allowing the method to process the data correctly.