Access API from PHP&cURL

Hi folks, looking at using PHP & curl to connect to the API. Always getting:

{“jsonrpc”:“2.0”,“error”:{“code”:-32700,“message”:“Parse error”},“id”:null}1

Am I heading in the right direction with the below code?

<?php

$data = array('jsonrpc'=>'2.0',
              'method'=>'getAllProjects',
              'id'=>'1');

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://localhost/kanboard-master/jsonrpc.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_USERPWD, "jsonrpc:xxx_api_token_removed_xxx");
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
 
 
$result = curl_exec ($curl);
echo curl_error($curl);
curl_close ($curl);
print $result;
 
?>

Configuration:
Application version: master.d3d55224329681722b52a84b31f141bf78aaa134
PHP version: 7.3.7
PHP SAPI: apache2handler
HTTP Client: cURL
OS version: Windows NT 10.0
Database driver: sqlite
Database version: 3.24.0
Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36

You must convert your $data to json

try changing this

to this

curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));

It should work.
But I encourage you to try to use a JsonRPC Client library to abstract this, it is so much easier.

1 Like

Thanks Rafael. Perfect.

Had a look at some JsonRPC client libraries as well as the brilliantly simple Python one on my coding journey with KB but I’m hoping (ha!) that my use for API will be non-complex, also developing on Windows using XAMPP so trying to keep dependencies to a minimum.

For them that come after me this code works fine for (the slightly more complex process of) creating tasks:

<?php

$data = array('jsonrpc'=>'2.0',
              'method'=>'createTask',
              'id'=>1,
			  'params'=> array ('title' => 'Test',
								'project_id' => 1,
								'color_id' => 'green',
								'column_id' => 2));

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL,"http://localhost/kanboard-master/jsonrpc.php");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_USERPWD, "jsonrpc:xxx_api_token_removed_xxx");
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($data));

$result = curl_exec ($curl);
echo curl_error($curl);
curl_close ($curl);
print $result;

?>

Has Kanboard already stopped support for PHP language? Ive seen no PHP in the API documentation. Only java, python, ruby and cURL.

https://docs.kanboard.org/en/latest/api/examples.html

The documentation offers examples, not absolutes. I use VB to access the api, and yet, it’s also not in the documentation. If you find the documentation lacking, you can contribute to it.

Hi I’m fairly new to Kanboard though I installed it in my XAMPP environment and have been using it on and off for about a year. Could someone point me to where I can generate or find the api token which is used as as a parameter for CURLOPT_USERPWD?
Thanks in advance.
Mack

Actually, I just found it.
Logged in as admin.
Then settings > API.