Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $apiAccessToken = "MY_ACCESS_TOKEN";
- $apiClientId = "MY_CLIENT_ID";
- function finalOutput($code, $status, $message)
- {
- // generate response header
- switch ($code)
- {
- case 200:
- $header = "OK";
- break;
- case 202:
- $header = "Accepted";
- break;
- case 204:
- $header = "No Content";
- break;
- case 400:
- $header = "Bad Request";
- break;
- case 401:
- $header = "Unauthorized";
- break;
- case 403:
- $header = "Forbidden";
- break;
- case 404:
- $header = "Not Found";
- break;
- case 405:
- $header = "Method Not Allowed";
- break;
- case 409:
- $header = "Conflict";
- break;
- case 412:
- $header = "Precondition Failed";
- break;
- case 500:
- $header = "Internal Error";
- break;
- // remap other codes
- default:
- $code = 501;
- $header = "Not Implemented";
- }
- // send out response header
- header($_SERVER['SERVER_PROTOCOL'] . ' ' . $code . ' ' . $header, true, $code);
- // generate output data
- $output = Array(
- "status" => $status,
- "data" => $message === null ? "Unknown message." : $message
- );
- // encode data into JSON
- header('Content-Type: application/json');
- echo json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
- // this is why it's called FINAL output
- die;
- }
- function getWunderlist($endPoint, $parameters = array(), $method = 'GET')
- {
- global $apiAccessToken;
- global $apiClientId;
- // 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: ' . $apiAccessToken;
- $headers[] = 'X-Client-ID: ' . $apiClientId;
- // 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 (isset($debug)) {
- 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;
- }
- if (empty($_GET["list"]) || !isset($_GET["list"]))
- {
- die("Please, provide ?list= parameter.");
- }
- $list = $_GET["list"];
- $wunderlistResult = getWunderlist('tasks?list_id=' . $list, null, 'GET');
- $output["tasks"] = $wunderlistResult;
- $output["list"] = $list;
- finalOutput(200, "OK", $output);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement