Jump to content

Making SOAP API calls.


strago

Recommended Posts

This is my first time messing with SOAP.

 

$params = array(
'user' => '[email protected]',
'password' => 'password',
'keyStr' => $keyStr,
'subId' => $subId);

$return_string = $client->call('getKey','getTodaySubIDStats','getYesterdaySubIDStats','getMonthToDateSubIDStats','getLastMonthSubIDStats', $params);

 

The

 

$return_string = $client->call('getKey','getTodaySubIDStats','getYesterdaySubIDStats','getMonthToDateSubIDStats','getLastMonthSubIDStats', $params);

 

spits out

 

Fatal error: Uncaught SoapFault exception: [Client] Function ("call") is not a valid method for this service in /home/site82/public_html/stats.php:20 Stack trace: #0 /home/site82/public_html/stats.php(20): SoapClient->__call('call', Array) #1 /home/site82/public_html/stats.php(20): SoapClient->call('getKey', 'getTodaySubIDSt...', 'getYesterdaySub...', 'getMonthToDateS...', 'getLastMonthSub...', Array) #2 {main} thrown in /home/site82/public_html/stats.php on line 20

 

So I E-Mailed support and got this

 

There are two different ways to make SOAP API calls, depending on which PHP library you use.

 

The example in the document has a client which wants calls like this:

 

$client->call('funcname', parm1, parm2)

 

The other type of call, which I think your client is using, is like this:

 

$client->funcname(parm1, parm2)

 

Switch over your coding and that should eliminate the problem you are getting.

 

so I tried...

 

$return_string = $client->getTodaySubIDStats(user,password,keyStr,subId);

 

and it then spits out

 

Fatal error: Uncaught SoapFault exception: [HTTP] Internal Server Error in /home/site82/public_html/stats.php:17 Stack trace: #0 [internal function]: SoapClient->__doRequest('<?xml version="...', 'http://www.maxb...', '', 1, 0) #1 /home/site82/public_html/stats.php(17): SoapClient->__call('getTodaySubIDSt...', Array) #2 /home/site82/public_html/stats.php(17): SoapClient->getTodaySubIDStats('user', 'password', 'keyStr', 'subId') #3 {main} thrown in /home/site82/public_html/stats.php on line 17

 

How do I call it the correct way??

Link to comment
https://forums.phpfreaks.com/topic/225239-making-soap-api-calls/
Share on other sites

From what I see there is a 'getKey' operation which uses a 'getKeyRequest' input message.  The 'getKeyRequest' message has the format of:

 

<user>

<password>

 

So, your request would look something like.

 

$params = array('user' => 'my_username', 
                'password' => 'my_password');
$client = new SoapClient('http://www.maxbounty.com/api/api.cfc?wsdl');
$result = $client->__soapCall('getKey',$params);

 

$result will then be of type 'getKeyResponse' which will look like an array

 

$result['getKeyReturn']

 

The function print_r() is definitely your friend when working with SOAP and so are try catch blocks.  :)

I just tried to get my script to run against that soap service and had an issue with connection.  If there are connection credentials you may need to change the constructor arguments to include authentication information.  See: http://us3.php.net/manual/en/soapclient.soapclient.php

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.