PHP soapclient koppeling

Hallo,
Sinds kort gebruiken wij als bedrijf dit CRM pakket en wij willen hier data naar importeren door middel van de API. Vandaag ben ik bezig geweest met het realiseren van de koppeling met de API vanuit een php script door middel van de native SoapClient van php.
Wanneer ik een request wil doen krijg ik de volgende error in beeld:

Server was unable to process request. —> Object reference not set to an instance of an object.

Ik heb hierover al telefonisch contact gehad met perfectview en de medewerken heeft mij verwezen naar dit forum nadat wij er samen ook niet uit kwamen.
De requests gaan goed als het via postman of SoupUI gaat, maar niet via de SoapClient class van php.

Mij stukje code ziet er als volgt uit:

    $soapClient = new \SoapClient(null, [
        'location' => 'https://api.perfectview.nl/PerfectView.asmx',
        'uri' => 'https://Api.perfectview.nl',
        'trace'          => 1,
        'soap_version'   => SOAP_1_2,
    ]);
    var_dump($soapClient->__soapCall('EntityTypeGetAll', [
        'Credentials'     => [
            'ApiKey'         => $this->apiKey,
            'DatabaseId'     => $this->dbId,
            'UserId'         => $this->userId,
        ],
    ]));

Ik hoop dat hier iemand weet waarom dit niet goed gaat en mij kan helpen.

Hoi Jasper,

Goed dat je deze topic hebt aangemaakt!

Ik heb zelf geen kennis van de API.

@Herbert.Denk kan jij Jasper wellicht verder helpen met zijn vraag?

Hallo @janneke.deleeuw en @jasper_de_vries,

Sorry, die melding zegt mij ook niets. Voor de zekerheid nog overleg gehad met mijn collega die bij ons alle API koppelingen maakt, maar zegt hem ook niets.
Zou het kunnen dat dit een specifieke PHP melding is? Ik heb dit kunnen vinden.

1 like

Ik gebruik:

$wsdl = 'https://api.perfectview.nl/perfectview.asmx?WSDL';
$client = new SoapClient($wsdl, array('trace' => 1, 'exceptions' => 1));

$params = array(
	'credentials' => array(
    	'ApiKey' => 'je api key',
       	'DatabaseId' => 'je database id',
    	'UserId' => 'je user id'
    ),
	'relationId' => 'id van een relatie die je wil opzoeken', 
'includeFields' => '1',
    'includeCounters' => 'False'
);
try {
    $response = $client->__soapCall('RelationGet', array('parameters' => $params));
	error_log('SOAP API call successful: ' . print_r($response, true));
} catch (SoapFault $e) {
	error_log('Error making SOAP API call: ' . $e->getMessage());
}