Advertisement
Guest User

wunderlist.php

a guest
Nov 17th, 2018
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.12 KB | None | 0 0
  1. <?php
  2.  
  3.     $apiAccessToken = "MY_ACCESS_TOKEN";
  4.     $apiClientId = "MY_CLIENT_ID";
  5.  
  6.     function finalOutput($code, $status, $message)
  7.     {
  8.  
  9.         // generate response header
  10.         switch ($code)
  11.         {
  12.             case 200:
  13.                 $header = "OK";
  14.                 break;
  15.  
  16.             case 202:
  17.                 $header = "Accepted";
  18.                 break;
  19.  
  20.             case 204:
  21.                 $header = "No Content";
  22.                 break;
  23.  
  24.             case 400:
  25.                 $header = "Bad Request";
  26.                 break;
  27.  
  28.             case 401:
  29.                 $header = "Unauthorized";
  30.                 break;
  31.  
  32.             case 403:
  33.                 $header = "Forbidden";
  34.                 break;
  35.  
  36.             case 404:
  37.                 $header = "Not Found";
  38.                 break;
  39.  
  40.             case 405:
  41.                 $header = "Method Not Allowed";
  42.                 break;
  43.  
  44.             case 409:
  45.                 $header = "Conflict";
  46.                 break;
  47.  
  48.             case 412:
  49.                 $header = "Precondition Failed";
  50.                 break;
  51.  
  52.             case 500:
  53.                 $header = "Internal Error";
  54.                 break;
  55.  
  56.  
  57.             // remap other codes
  58.             default:
  59.                 $code = 501;
  60.                 $header = "Not Implemented";
  61.         }
  62.        
  63.         // send out response header
  64.         header($_SERVER['SERVER_PROTOCOL'] . ' ' . $code . ' ' . $header, true, $code);
  65.    
  66.  
  67.         // generate output data
  68.         $output = Array(
  69.             "status" => $status,
  70.             "data" => $message === null ? "Unknown message." : $message
  71.             );
  72.  
  73.         // encode data into JSON
  74.         header('Content-Type: application/json');
  75.         echo json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);
  76.  
  77.         // this is why it's called FINAL output
  78.         die;
  79.     }
  80.  
  81.     function getWunderlist($endPoint, $parameters = array(), $method = 'GET')
  82.     {
  83.         global $apiAccessToken;
  84.         global $apiClientId;
  85.  
  86.         // check if curl is available
  87.         if (!function_exists('curl_init')) {
  88.             print "This method requires cURL (http://php.net/curl), it seems like the extension isn't installed. ".__LINE__;
  89.             exit();
  90.         }
  91.         //prepare content
  92.         $parametersdata = json_encode($parameters);
  93.  
  94.         // define url
  95.         $url = 'https://a.wunderlist.com/api/v1/' . $endPoint;
  96.  
  97.         // init curl
  98.         $curl = curl_init();
  99.         // set options
  100.         curl_setopt($curl, CURLOPT_URL, $url);
  101.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  102.         curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  103.         // init headers
  104.         $headers = array();
  105.  
  106.         // add to header
  107.         $headers[] = 'X-Access-Token: ' . $apiAccessToken;
  108.         $headers[] = 'X-Client-ID: ' . $apiClientId;
  109.  
  110.         // method is POST, used for login or inserts
  111.         if ($method == 'POST') {
  112.             // define post method
  113.             curl_setopt($curl, CURLOPT_POST, 1);
  114.         // method is DELETE
  115.         } elseif ($method == 'DELETE') {
  116.             curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
  117.         } else {
  118.             curl_setopt($curl, CURLOPT_HTTPGET, 1);
  119.         }
  120.  
  121.         // parameters are set
  122.         if (!empty($parameters)) {
  123.             $headers[] = 'Content-Type: application/json';
  124.             $headers[] = 'Content-Length: ' . strlen($parametersdata);
  125.             curl_setopt($curl, CURLOPT_POSTFIELDS, $parametersdata );
  126.         }
  127.         // define headers with the request
  128.         if (!empty($headers)) {
  129.             // add headers
  130.             curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
  131.         }
  132.         // execute
  133.         $response = curl_exec($curl);  
  134.         // debug is on
  135.         if (isset($debug)) {
  136.             echo $method." ".$url . '<br/><pre>';
  137.             print"\n--headers--\n";
  138.             print_r($headers);
  139.             print"\n--parameters--\n";
  140.             print_r($parameters);
  141.             print"\n--parametersdata--\n";
  142.             print_r($parametersdata);
  143.             print"\n--response--\n";
  144.             print_r($response);
  145.             echo '</pre><br/><br/>';
  146.         }
  147.         // get HTTP response code
  148.         $httpCode = (int) curl_getinfo($curl, CURLINFO_HTTP_CODE);
  149.         // close
  150.         curl_close($curl);
  151.         // response is empty or false
  152.         if (empty($response)) {
  153.             //throw new Exception('Error: ' . $response);
  154.             print "Error: ". $response." ".__LINE__;
  155.         }
  156.         // init result
  157.         $result = false;
  158.         // successfull response  
  159.         if (($httpCode == 200) || ($httpCode == 201)) {
  160.             $result = json_decode($response, true);
  161.         }
  162.         // return
  163.         return $result;
  164.     }
  165.  
  166.  
  167.     if (empty($_GET["list"]) || !isset($_GET["list"]))
  168.     {
  169.         die("Please, provide ?list= parameter.");
  170.     }
  171.     $list = $_GET["list"];
  172.     $wunderlistResult = getWunderlist('tasks?list_id=' . $list, null, 'GET');
  173.  
  174.     $output["tasks"] = $wunderlistResult;
  175.     $output["list"] = $list;
  176.                
  177.     finalOutput(200, "OK", $output);
  178.  
  179. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement