[ckan-dev] Using CKAN's API via PHP.

Ross Jones ross at servercode.co.uk
Mon Sep 29 08:29:13 UTC 2014


This is clearly a bug of the this-is-a-sensible-request variety.  

Could you file a ticket at https://github.com/ckan/ckan/issues/ ? 
It *might* (and only might) be related to https://github.com/ckan/ckan/issues/1718 

Ross.

On 29 Sep 2014, at 09:22, Henrik Aagaard Jørgensen <henrikaagaardjorgensen at gmail.com> wrote:

> Just saw the doc's and apparently it is not possible to access private datasets via the API with datastore_search_sql:
> "DataStore resource that belong to a private CKAN resource cannot be searched with this action."
> 
> How unfortunate.
> 
> Sorry for the trouble.
> 
> 
> 2014-09-29 10:19 GMT+02:00 Paolo Mainardi <paolo at twinbit.it>:
> As is written in the wiki: https://github.com/ckan/ckan/wiki/CKAN-API-Clients you can use those clients:
> 
> - Ckan_client-PHP: https://github.com/jeffreybarke/Ckan_client-PHP
> - PHP CKAN client - from Silex. Uses Guzzle for the HTTP. Packaged using Composer; also on Github. Covers a number of action functions for reading/writing packages, resources, etc. Comes with tests (https://packagist.org/packages/silex/ckan_client)
> 
> Thanks,
> P.
> 
> On Mon, Sep 29, 2014 at 9:52 AM, Henrik Aagaard Jørgensen <henrikaagaardjorgensen at gmail.com> wrote:
> Hello everyone,
> 
> I'm trying to use CKAN's API via PHP.
> 
> I'm using cURL and are allowed if the dataset is not private. But when trying to access a private dataset I get access denied.
> 
> CKAN is version 2.2 with datastore installed.
> 
> Running this code fails with response from the CKAN API with "{'permissions': ['Not authorized to read resource.']}":
> 
> -----
> 
> $sql = 'SELECT * FROM "656eedf2-8648-442d-90fa-4500fc49eb4a"';
> 
> $ch = curl_init();
> curl_setopt($ch, CURLOPT_URL, "http://localhost/api/action/datastore_search_sql");
> curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array('sql' => $sql)));
> curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
> curl_setopt($ch, CURLOPT_HTTPHEADER, Authorization'array(' => 'b5256727-2711-4ac5-9009-cfc155ec13a2'));
> $response = curl_exec($ch);
> curl_close($ch);
> 
> var_dump(json_decode($response));
> 
> -----
> 
> When I use the code on public datasets it works. The API-key I'm using is the same as the user who created it, and I'm able to see it via the web interface.
> 
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
> 
> 
> 
> 
> -- 
>  
> 
> 
> Paolo Mainardi 
> Twinbit Founder - CTO
> 
> www:      twinbit.it 
> mobile:   (+39) 3401678089 
> skype:    paolo_mainardi 
> linkedin: paolomainardi 
> twitter:  @paolomainardi 
> blog:     paolomainardi.com 
> 
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev
> 
> 
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: https://lists.okfn.org/mailman/options/ckan-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.okfn.org/pipermail/ckan-dev/attachments/20140929/12c20c21/attachment-0003.html>


More information about the ckan-dev mailing list