Advertisement
Guest User

PHP Zend Oauth and Google Docs

a guest
May 25th, 2010
1,275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 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://docs.google.com/feeds/',
  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/Docs.php';
  51. $httpClient = $accessToken->getHttpClient($oauthOptions);
  52. $client = new Zend_Gdata_Docs($httpClient, "yourCompany-YourAppName-v1");
  53. $feed = $client->getDocumentListFeed();
  54. echo "<pre>";
  55. echo "<ul>\n";
  56. foreach ($feed->entries as $entry) {
  57. echo "<li>$entry->title </li>\n";
  58. }
  59. echo "</ul>\n";
  60. echo "</pre>\n";
  61.  
  62. exit(0);
  63. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement