<?php

require_once '../../csrest_general.php';
$auth = array('access_token' => 'your access token', 'refresh_token' => 'your refresh token');
$wrap = new CS_REST_General($auth);
$result = $wrap->get_clients();
if (!$result->was_successful()) {
    # If you receive '121: Expired OAuth Token', refresh the access token
    if ($result->response->Code == 121) {
        list($new_access_token, $new_expires_in, $new_refresh_token) = $wrap->refresh_token();
        # Save $new_access_token, $new_expires_in, and $new_refresh_token
    }
    # Make the call again
    $result = $wrap->get_clients();
}
var_dump($result->response);
 public function refreshToken()
 {
     // Check if auth type is OAuth
     if ($this->isOAuth()) {
         // Get the credentials
         $accessToken = Mage::getModel('campaignmonitor/auth')->getAccessToken();
         $refreshToken = Mage::getModel('campaignmonitor/auth')->getRefreshToken();
         $auth = array('access_token' => $accessToken, 'refresh_token' => $refreshToken);
         // Use the REST lib to refresh the token
         $wrap = new CS_REST_General($auth);
         list($new_access_token, $new_expires_in, $new_refresh_token) = $wrap->refresh_token();
         // Use stdClass as it's the same type as OG response
         $response = new stdClass();
         $response->access_token = $new_access_token;
         $response->expires_in = $new_expires_in;
         $response->refresh_token = $new_refresh_token;
         $session = Mage::getModel('core/session');
         $session->setData(self::CAMPAIGNMONITOR_SESSION_DATA_KEY, $response);
         // Save $new_access_token, $new_expires_in, and $new_refresh_token
         Mage::getConfig()->saveConfig(self::CAMPAIGNMONITOR_CONFIG_DATA_KEY, serialize($response), 'default', 0);
     }
 }