setAuthConfig($oauth_credentials); $client->setRedirectUri($redirect_uri); $client->addScope("https://www.googleapis.com/auth/urlshortener"); /************************************************ * When we create the service here, we pass the * client to it. The client then queries the service * for the required scopes, and uses that when * generating the authentication URL later. ************************************************/ $service = new Google_Service_Urlshortener($client); /************************************************ * If we're logging out we just need to clear our * local access token in this case ************************************************/ if (isset($_REQUEST['logout'])) { unset($_SESSION['access_token']); } /************************************************ * If we have a code back from the OAuth 2.0 flow, * we need to exchange that with the * Google_Client::fetchAccessTokenWithAuthCode() * function. We store the resultant access token * bundle in the session, and redirect to ourself. ************************************************/ if (isset($_GET['code'])) { $token = $client->fetchAccessTokenWithAuthCode($_GET['code']); $client->setAccessToken($token); // store in the session also $_SESSION['access_token'] = $token; // redirect back to the example header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); } /************************************************ If we have an access token, we can make requests, else we generate an authentication URL. ************************************************/ if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { $client->setAccessToken($_SESSION['access_token']); } else { $authUrl = $client->createAuthUrl(); } /************************************************ If we're signed in and have a request to shorten a URL, then we create a new URL object, set the unshortened URL, and call the 'insert' method on the 'url' resource. Note that we re-store the access_token bundle, just in case anything changed during the request - the main thing that might happen here is the access token itself is refreshed if the application has offline access. ************************************************/ if ($client->getAccessToken() && isset($_GET['url'])) { $url = new Google_Service_Urlshortener_Url(); $url->longUrl = $_GET['url']; $short = $service->url->insert($url); $_SESSION['access_token'] = $client->getAccessToken(); } ?>
= pageFooter(__FILE__);