* This is a command line example that includes a few simple calls using the TSheets PHP API Library. * It assumes/requires you already have your access token. If you do not have it yet: * * - Visit your TSheets web dashboard * - Click on "Company Settings" in the menu bar on the left * - Click on "Add-ons" * - Locate the "API" add-on and either install it or open the preferences * - Create or edit an application and your access token will be provided */ require_once '../tsheets.inc.php'; // Enter your credentials here if you don't want to be prompted each time $access_token = NULL; if (!isset($access_token)) { $access_token = readline('Enter your access token: '); } $tsheets = new TSheetsRestClient(1, $access_token); ////////////////////////////////////////////////////////////////////////////////// readline('Press enter to get a list of users:'); // Get a list of users $users = $tsheets->get(ObjectType::Users); print "TSheets Users\n"; print "-------------\n"; foreach ($users['results']['users'] as $user) { print "User: {$user['first_name']} {$user['last_name']}\n"; } ////////////////////////////////////////////////////////////////////////////////// readline('Press enter to create two new timesheets:'); // Get jobcodes $jobcodes = $tsheets->get(ObjectType::Jobcodes, array('type' => 'regular')); // Pick a first user and jobcode to work on $user = reset($users['results']['users']);
* The Reminders endpoint refers to clock in/out reminders only, not custom Notifications. * It assumes/requires you already have your access token. If you do not have it yet: * * - Visit your TSheets web dashboard * - Click on "Company Settings" in the menu bar on the left * - Click on "Add-ons" * - Locate the "API" add-on and either install it or open the preferences * - Create or edit an application and your access token will be provided */ require_once '../tsheets.inc.php'; // Enter your credentials here if you don't want to be prompted each time $access_token = NULL; if (!isset($access_token)) { $access_token = readline('Enter your access token: '); } $tsheets = new TSheetsRestClient(1, $access_token); ////////////////////////////////////////////////////////////////////////////////// readline('Press enter to get a list of reminders:'); // Get a list of users $reminders = $tsheets->get(ObjectType::Reminders); print "TSheets Users\n"; print "-------------\n"; foreach ($reminders['results']['reminders'] as $reminders) { print "Active: {$reminders['id']} {$reminders['reminder_type']}\n"; // If User ID is 0, that means it is a global (company wide) reminder print "User ID: {$reminders['user_id']}\n"; print "Reminder: {$reminders['active']} {$reminders['enabled']}\n"; } ////////////////////////////////////////////////////////////////////////////////// readline('Press enter to add a reminder:'); // Create a clock-in and a clock-out reminder with a single api call
<?php include_once 'tsheets_api/tsheets.inc.php'; date_default_timezone_set('America/Denver'); $currentDate = date('Y-m-d'); $hour_ago = strtotime('-1 day'); $time = date('c', $hour_ago); $tsheets = new TSheetsRestClient(1, 'S.1__077e97bad6c2d4a2f315228fe10c71dda352b774'); //$result = $tsheets->get_report(ReportType::Timesheets, // array('start_date' => '2015-9-20', // 'end_date' => $currentDate)); $timesheetArray = array(); for ($i = 0; $i < 100; $i++) { $pageNumber = $i + 1; $timesheet = $tsheets->get(ObjectType::Timesheets, array('modified_since' => $time, 'page' => $pageNumber)); $timesheetDeleted = $tsheets->get(ObjectType::TimesheetsDeleted, array('modified_since' => $time, 'page' => $pageNumber)); foreach ($timesheetDeleted['results']['timesheets_deleted'] as $deleted) { $deleted['deleted'] = "true"; $deleted['duration'] = 0; array_push($timesheet['results']['timesheets'], $deleted); } if (count($timesheet['results']['timesheets']) == 0) { break; } $array = $timesheet['results']['timesheets']; $idsArray = array(); $jobcodeArray = array(); foreach ($array as $timesheet) { array_push($idsArray, $timesheet['user_id']); array_push($jobcodeArray, $timesheet['jobcode_id']); }
if ($_GET['error']) { $status_output .= $_GET['error'] . "<br/>"; $status_output .= $_GET['error_description'] . "</br></br>"; break; } else { $tsheets = new TSheetsRestClient(1, null, $_SESSION['client_id'], $_SESSION['client_secret']); $result = $tsheets->get_access_token($_GET['code'], $redirect_uri); $_SESSION['access_token'] = $result['access_token']; $_SESSION['refresh_token'] = $result['refresh_token']; // redirect back to base uri with no params so refresh will work on this page later header("Location: {$redirect_uri}"); die; } case 'test_request': // Called if the "Test a 'User List' Request" button is clicked. Makes an API call using the access token $tsheets = new TSheetsRestClient(1, $_SESSION['access_token']); $users = $tsheets->get(ObjectType::Users); foreach ($users['results']['users'] as $user) { $test_request_html .= "<br/>{$user['first_name']} {$user['last_name']}"; } break; case 'clear_session': session_destroy(); header("Location: {$redirect_uri}"); die; default: break; } } catch (TSheetsException $e) { $status_output .= $e->__toString() . "<br/>"; }