예제 #1
0
파일: index.php 프로젝트: schibsted/sdk-php
 try {
     // Grab the logged in user's User Object, /me will include the entire User object
     $user = $client->api('/me');
     echo '<h3 id="message">Welcome</h3>
         <h4>Logged in as <span id="name" style="color:blue">' . $user['displayName'] . '</span> <small>id: <span id="userId" style="color:green">' . $user['userId'] . '</span> email: <span id="email" style="color:purple">' . $user['email'] . '</span></h4>';
     if (isset($_GET['order_id'])) {
         echo '<pre>' . print_r($client->api('/order/' . $_GET['order_id']), true) . '</pre>';
     }
 } catch (VGS_Client_Exception $e) {
     if ($e->getCode() == 401) {
         // access denied, in case the access token is expired, try to refresh it
         try {
             // refresh tokens using the session saved refresh token
             $client->refreshAccessToken($session['refresh_token']);
             $_SESSION['sdk']['access_token'] = $client->getAccessToken();
             $_SESSION['sdk']['refresh_token'] = $client->getRefreshToken();
             // Sesssion refreshed with valid tokens
             header("Location: " . $client->getCurrentURI(array(), array('code', 'login', 'error', 'logout', 'order_id', 'spid_page')));
             exit;
         } catch (Exception $e2) {
             /* falls back to $e message bellow */
         }
     }
     if ($e->getCode() == 400) {
         header("Location: " . $client->getLoginURI(array('redirect_uri' => $client->getCurrentURI(array(), array('logout', 'error', 'code', 'order_id', 'spid_page')))));
         exit;
     }
     // API exception, show message, remove session as it is probably not usable
     unset($_SESSION['sdk']);
     echo '<h3 id="error" style="color:red">' . $e->getCode() . ' : ' . $e->getMessage() . '</h3>';
 }