Advertisement
Guest User

PHP Zend Oauth and Fusion Tables

a guest
May 25th, 2010
431
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. <?php
  2. // set your path to Zend if you need it
  3. $path = realpath('/home/piers/code/');
  4. set_include_path($path . PATH_SEPARATOR . get_include_path());
  5.  
  6. require_once 'Zend/Oauth/Consumer.php';
  7.  
  8. session_start();
  9.  
  10. // set your Google consumer key / secret
  11. $CONSUMER_KEY = 'your-consumer-key';
  12. $CONSUMER_SECRET = 'your-consumer-secret';
  13. $RETURN_TO = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
  14.  
  15. // Multi-scoped token.
  16. $SCOPES = array(
  17. 'http://tables.googlelabs.com/api/query',
  18. );
  19.  
  20. $oauthOptions = array(
  21. 'requestScheme' => Zend_Oauth::REQUEST_SCHEME_HEADER,
  22. 'version' => '1.0',
  23. 'consumerKey' => $CONSUMER_KEY,
  24. 'consumerSecret' => $CONSUMER_SECRET,
  25. 'signatureMethod' => 'HMAC-SHA1',
  26. 'callbackUrl' => $RETURN_TO,
  27. 'requestTokenUrl' => 'https://www.google.com/accounts/OAuthGetRequestToken',
  28. 'userAuthorizationUrl' => 'https://www.google.com/accounts/OAuthAuthorizeToken',
  29. 'accessTokenUrl' => 'https://www.google.com/accounts/OAuthGetAccessToken'
  30. );
  31.  
  32. $consumer = new Zend_Oauth_Consumer($oauthOptions);
  33.  
  34. if (!isset($_SESSION['REQUEST_TOKEN'])) {
  35. $_SESSION['REQUEST_TOKEN'] = serialize($consumer->getRequestToken(array('scope' => implode(' ', $SCOPES))));
  36. $approvalUrl = $consumer->getRedirectUrl(array('hd' => 'default'));
  37. echo "<a href=\"$approvalUrl\">Grant access</a>";
  38. exit(0);
  39. }
  40.  
  41. if (!isset($_SESSION['ACCESS_TOKEN'])) {
  42. if (!empty($_GET) && isset($_SESSION['REQUEST_TOKEN'])) {
  43. $_SESSION['ACCESS_TOKEN'] = serialize($consumer->getAccessToken($_GET, unserialize($_SESSION['REQUEST_TOKEN'])));
  44. }
  45. }
  46. $accessToken = unserialize($_SESSION['ACCESS_TOKEN']);
  47. unset($_SESSION['REQUEST_TOKEN']);
  48. unset($_SESSION['ACCESS_TOKEN']);
  49.  
  50. require_once 'Zend/Gdata/Gbase.php';
  51. require_once 'Zend/Gdata/Query.php';
  52. $httpClient = $accessToken->getHttpClient($oauthOptions);
  53. $gdata = new Zend_Gdata_Gbase($httpClient, 'fusiontables');
  54. $url = "http://tables.googlelabs.com/api/query?sql=show%20tables";
  55. $data = $gdata->get($url);
  56. echo "<pre>";
  57. var_dump($data);
  58. echo "</pre>\n";
  59.  
  60. exit(0);
  61. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement