You need to sign in to do that
Don't have an account?
Edward Berwick
Retrieve Account details from an external API
Hi,
I'm new to this API calling etc. I want to retrieve Address and other company information based upon the Salesforce Account Name. The External API I'm using is Duedil which holds mainly UK Company information. Based upon simply the name of a company e.g. where Account Name = 'Arjo Fine Paper'
for a URL button
http://api.duedil.com/open/search?q={!Account.Name}&api_key=MY_API_KEY (they're free upon request at the website)
the response is
{"response":{"pagination":"http:\/\/api.duedil.com\/open\/search?query=Arjo+Fine+Paper&total_results=3&limit=5&last_result=1","data":[{"company_number":"00961440","locale":"United Kingdom","name":"Arjo Wiggins Fine Papers Limited","uri":"http:\/\/api.duedil.com\/open\/uk\/company\/00961440.json"},{"company_number":"01870033","locale":"United Kingdom","name":"Arjo Wiggins Fine Papers Export Limited","uri":"http:\/\/api.duedil.com\/open\/uk\/company\/01870033.json"},{"company_number":"00683415","locale":"United Kingdom","name":"Arjo Wiggins Fine Papers Holdings Limited","uri":"http:\/\/api.duedil.com\/open\/uk\/company\/00683415.json"}]}}
I would like to simply parse the results in this output in Bold to
https://www.duedil.com/company/00961440
then the user can potentially determine is the name they entered a known UK company (according to Duedil at least).
BTW Duedil intend to cover other countries in future.
I'm new to this API calling etc. I want to retrieve Address and other company information based upon the Salesforce Account Name. The External API I'm using is Duedil which holds mainly UK Company information. Based upon simply the name of a company e.g. where Account Name = 'Arjo Fine Paper'
for a URL button
http://api.duedil.com/open/search?q={!Account.Name}&api_key=MY_API_KEY (they're free upon request at the website)
the response is
{"response":{"pagination":"http:\/\/api.duedil.com\/open\/search?query=Arjo+Fine+Paper&total_results=3&limit=5&last_result=1","data":[{"company_number":"00961440","locale":"United Kingdom","name":"Arjo Wiggins Fine Papers Limited","uri":"http:\/\/api.duedil.com\/open\/uk\/company\/00961440.json"},{"company_number":"01870033","locale":"United Kingdom","name":"Arjo Wiggins Fine Papers Export Limited","uri":"http:\/\/api.duedil.com\/open\/uk\/company\/01870033.json"},{"company_number":"00683415","locale":"United Kingdom","name":"Arjo Wiggins Fine Papers Holdings Limited","uri":"http:\/\/api.duedil.com\/open\/uk\/company\/00683415.json"}]}}
I would like to simply parse the results in this output in Bold to
https://www.duedil.com/company/00961440
then the user can potentially determine is the name they entered a known UK company (according to Duedil at least).
BTW Duedil intend to cover other countries in future.
You can parse this JSON response using the various json classes available in the salesforce api.
Check this link:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_json_jsonparser.htm
Regards,
Satish Kumar
All Answers
You can parse this JSON response using the various json classes available in the salesforce api.
Check this link:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_json_jsonparser.htm
Regards,
Satish Kumar
Do you think the "String endpoint" would accept the URL as I had it when defining the button as simply a URL?
'http://api.duedil.com/open/search?q={!Account.Name}&api_key=gwmswhs3sndu428utbhac8hk';
Other than that I'll amend the "String s=" value to mirror the above response.
Then in the parser section I just want to Parse out the company Number/Numbers
(parser.getText() == 'company_number'))
Finally could I potentially output the results as a URL?
e.g.
https://www.duedil.com/company/00961440
I'm not sure if the "system.debug('Grand total=' + grandTotal);" in the example would provide this same output.
Any further pointers, much obliged.
Cheers, Ed