Ejemplo n.º 1
0
 * 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
Ejemplo n.º 3
0
<?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/>";
}