Bob320 Posted August 17, 2016 Share Posted August 17, 2016 Looking at the documentation for the api I see PHP examples make use of a class ESP. Is this class publically available? It would save me a lot of time translating from go. $the_transport = new \Esp\Transport("", "xmlmc", "dav"); $mc = new \Esp\MethodCall($the_transport); try { Link to comment Share on other sites More sharing options...
Bob320 Posted August 18, 2016 Author Share Posted August 18, 2016 Further to this how do you get hold of the documentation that's mentioned in regard to Hornbill Development? For example, I've managed to talk with the api and got some responses, but not sure what I need to pass in order to get what I'm after. At this stage I'm interested in simple form data to update an asset location/site. So The process I need to go through would seem to be: session::userLogon - pass userid and password (or maybe the api key let's me skip this?) Take the SessionID com.hornbill.servicemanager/Asset::searchAssetGlobal - Send the previous SessionID and pass a string as a filter??? This is what I struggle with. Can I just pass an asset name or does it need something more like "h_name like '%search%'"? session::userLogoff - Send previous SessionID So this shows it logs me on: <methodCall service="session" method="userLogon"><params><userId>paulb</userId><password>ODFGDFGGGSDxOg==</password></params></methodCall> Esp\XmlmcInstStruct Object ( [server] => https://eurapi.hornbill.com/charnwoodbc/xmlmc/ [paramsXml] => paulbODFGDFGGGSDxOg== [statusCode] => [timeout] => 30 [sessionID] => [apiKey] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [jsonResp] => ) * Hostname was NOT found in DNS cache * Trying 78.129.173.117... * Connected to eurapi.hornbill.com (78.129.173.117) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: C=GB; ST=Middlesex; L=Ruislip; O=Hornbill Service Management Limited; OU=Marketing; CN=*.hornbill.com * start date: 2014-10-29 00:00:00 GMT * expire date: 2017-03-24 23:59:59 GMT * subjectAltName: eurapi.hornbill.com matched * issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3 * SSL certificate verify ok. > POST /charnwoodbc/xmlmc/session/ HTTP/1.1 Content-type: text/xmlmc Authorization: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Accept: Application/json User-Agent: GuzzleHttp/6.2.1 curl/7.38.0 PHP/5.6.24-0+deb8u1 Host: eurapi.hornbill.com headers: text/xmlmc headers: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx headers: Application/json headers: 138 Content-Length: 138 * upload completely sent off: 138 out of 138 bytes < HTTP/1.1 200 OK * Server nginx is not blacklisted < Server: nginx < Date: Thu, 18 Aug 2016 15:05:44 GMT < Content-Type: text/json; charset="utf-8" < Content-Length: 79 < Connection: keep-alive < Accept-Ranges: bytes < Cache-Control: no-cache < Set-Cookie: ESPSessionState=KA59jllmB48qZVhJojMWCsT1dwd1QOj_stURehYxkqgHUZfgwKNa; path=/charnwoodbc < X-esp-instance: charnwoodbc < X-esp-service-build-date: 2016-07-12 < X-esp-service-name: Esp.charnwoodbc.ServerService < X-esp-service-version: 8.0.0.2578 < X-esp-transaction-id: af6468db-8d3d-40eb-b489-9d05293a327b < X-esp-transaction-perf: t=2016-08-18 15:05:44Z, tt=40.842ms < Strict-Transport-Security: max-age=31536000; includeSubDomains < * Connection #0 to host eurapi.hornbill.com left intact Then I try to query for an asset and am not sure what to pass here: <methodCall service="com.hornbill.servicemanager/Asset" method="searchAssetGlobal"><params><filter>** WHAT TO PUT HERE? **</filter><sessionId>KA59jllmB48qZVhJojMWCsT1dwd1QOj_stURehYxkqgHUZfgwKNa</sessionId></params></methodCall> Esp\XmlmcInstStruct Object ( [server] => https://eurapi.hornbill.com/charnwoodbc/xmlmc/ [paramsXml] => 3533 [statusCode] => 200 [timeout] => 30 [sessionID] => KA59jllmB48qZVhJojMWCsT1dwd1QOj_stURehYxkqgHUZfgwKNa [apiKey] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [jsonResp] => ) * Hostname was found in DNS cache * Trying 78.129.173.117... * Connected to eurapi.hornbill.com (78.129.173.117) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/ssl/certs * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 * Server certificate: * subject: C=GB; ST=Middlesex; L=Ruislip; O=Hornbill Service Management Limited; OU=Marketing; CN=*.hornbill.com * start date: 2014-10-29 00:00:00 GMT * expire date: 2017-03-24 23:59:59 GMT * subjectAltName: eurapi.hornbill.com matched * issuer: C=US; O=GeoTrust Inc.; CN=GeoTrust SSL CA - G3 * SSL certificate verify ok. > POST /charnwoodbc/xmlmc/com.hornbill.servicemanager/Asset/ HTTP/1.1 Content-type: text/xmlmc Authorization: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Accept: Application/json User-Agent: GuzzleHttp/6.2.1 curl/7.38.0 PHP/5.6.24-0+deb8u1 Host: eurapi.hornbill.com headers: text/xmlmc headers: ESP-APIKEY xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx headers: Application/json headers: 209 Content-Length: 209 * upload completely sent off: 209 out of 209 bytes < HTTP/1.1 200 OK * Server nginx is not blacklisted < Server: nginx < Date: Thu, 18 Aug 2016 15:05:44 GMT < Content-Type: text/xmlmc; charset=utf-8 < Content-Length: 226 < Connection: keep-alive < Accept-Ranges: bytes < Cache-Control: no-cache < Set-Cookie: ESPSessionState=; path=/charnwoodbc < X-esp-instance: charnwoodbc < X-esp-service-build-date: 2016-07-12 < X-esp-service-name: Esp.charnwoodbc.ServerService < X-esp-service-version: 8.0.0.2578 < X-esp-transaction-id: 770d0c28-de81-4a98-9707-0554c14e4683 < X-esp-transaction-perf: t=2016-08-18 15:05:44Z, tt=1.235ms < Strict-Transport-Security: max-age=31536000; includeSubDomains < * Connection #0 to host eurapi.hornbill.com left intact Why does it set the ESPSessionState to empty here? Link to comment Share on other sites More sharing options...
TrevorKillick Posted August 19, 2016 Share Posted August 19, 2016 Hi there, You might want to edit you post and remove any passwords, in regards to the API documentation you can use the following URLhttps://eurapi.hornbill.com/charnwoodbc/xmlmc/ As for the ESP PHP Library we are working on publishing our API libraries on https://github.com/hornbill/ as soon as we have something available for PHP i will post a response. Kind Regards Trevor Killick Link to comment Share on other sites More sharing options...
Bob320 Posted August 19, 2016 Author Share Posted August 19, 2016 The passwords in the post are not real I have managed to figure this out and have rolled my own php library that gets me the responses needed. It was more straight forward than I thought, but a simple mistake can tie things up for quite a while. $api->SetParam('filter', 'ASSETSTRING'); $api->Invoke('apps/com.hornbill.servicemanager/Asset', 'searchAssetGlobal'); My mistake was omitting the apps/ part of the service. The filter string itself is nothing but the string you'd type in to search in the UI. Also as I hoped, as long as the API key is set then no user logon is required. Just set params and call invoke. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now