Sono stato alla ricerca di un po 'ora e non è possibile ottenere una panoramica delle attività da un unico elenco con il punto terminale Wunderlist: https://a.wunderlist.com/api/v1/tasksWunderlist Compiti - Come faccio ad avere i compiti per un elenco utilizzando ricciolo in php
Posso ottenere liste, cartelle e creare liste, cartelle, attività in modo che funzioni bene. Ma come faccio ad avere i compiti da una lista? Ho cercato di interpretare la documentazione trovata qui: https://developer.wunderlist.com/documentation/endpoints/task
Quando faccio un metodo GET ricevo questo messaggio di errore:
{"error":{"type":"missing_parameter","translation_key":"api_error_missing_params","message":"Missing parameter.","title":["required"]}}
Tuttavia, non voglio aggiungere un titolo, dal momento che non lo faccio voglio creare una nuova attività, voglio solo i compiti di quella lista.
Cosa sto facendo di sbagliato qui?
Ecco il mio codice finora:
function doCall($endPoint, $parameters = array(), $method = 'GET')
{
// check if curl is available
if (!function_exists('curl_init')) {
print "This method requires cURL (http://php.net/curl), it seems like the extension isn't installed. ".__LINE__;
exit();
}
//prepare content
$parametersdata = json_encode($parameters);
// define url
$url = 'https://a.wunderlist.com/api/v1/' . $endPoint;
// init curl
$curl = curl_init();
// set options
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
// init headers
$headers = array();
// add to header
$headers[] = 'X-Access-Token: XXX';
$headers[] = 'X-Client-ID: XXX';
// method is POST, used for login or inserts
if ($method == 'POST') {
// define post method
curl_setopt($curl, CURLOPT_POST, 1);
// method is DELETE
} elseif ($method == 'DELETE') {
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
} else {
curl_setopt($curl, CURLOPT_HTTPGET, 1);
}
// parameters are set
if (!empty($parameters)) {
$headers[] = 'Content-Type: application/json';
$headers[] = 'Content-Length: ' . strlen($parametersdata);
curl_setopt($curl, CURLOPT_POSTFIELDS, $parametersdata);
}
// define headers with the request
if (!empty($headers)) {
// add headers
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
}
// execute
$response = curl_exec($curl);
// debug is on
if (true) {
echo $method." ".$url . '<br/><pre>';
print"\n--headers--\n";
print_r($headers);
print"\n--parameters--\n";
print_r($parameters);
print"\n--parametersdata--\n";
print_r($parametersdata);
print"\n--response--\n";
print_r($response);
echo '</pre><br/><br/>';
}
// get HTTP response code
$httpCode = (int) curl_getinfo($curl, CURLINFO_HTTP_CODE);
// close
curl_close($curl);
// response is empty or false
if (empty($response)) {
//throw new Exception('Error: ' . $response);
print "Error: ". $response." ".__LINE__;
}
// init result
$result = false;
// successfull response
if (($httpCode == 200) || ($httpCode == 201)) {
$result = json_decode($response, true);
}
// return
return $result;
}
$listid = 123;
$url = 'tasks';
$tasks = doCall($url,array('list_id' => $listid), 'GET');
echo $tasks;
- EDIT ADDENDUM --- Ho anche provato queste varianti nel caso qualcuno Wonders. Tutti danno lo stesso errore "bad_request"
GET a.wunderlist.com/api/v1/tasks{"list_id":"141329591"}
GET a.wunderlist.com/api/v1/tasks{"list_id":141329591}
GET a.wunderlist.com/api/v1/tasks/{"list_id":"141329591"}
^Si prega di aggiungere ulteriore materiale in questione (che possono essere modificati), e, idealmente, quindi eliminare il commento ridondante per riordinare . Grazie! – halfer
Per questo endpoint è necessario inviare list_id come parametro querystring anziché postare dati. Prova invece https://a.wunderlist.com/api/v1/tasks?list_id=XXX. –