quickstart.php
Code on global space
Code on global space
Code on global space
Code on global space
2. require_once __DIR__ . '/vendor/autoload.php';
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
5. define('APPLICATION_NAME', 'Google Sheets API PHP Quickstart');
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
6. define('CREDENTIALS_PATH', './credentials/sheets.googleapis.com-php-quickstart.json');
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
7. define('CLIENT_SECRET_PATH', './credentials/client_secret.json');
8. // If modifying these scopes, delete your previously saved credentials
9. // at ~/.credentials/sheets.googleapis.com-php-quickstart.json
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
10. define('SCOPES', implode(' ', array(
Code on global space
Code on global space
11. Google_Service_Sheets::SPREADSHEETS_READONLY)
Code on global space
Code on global space
Code on global space
Code on global space
14. if (php_sapi_name() != 'cli') {
Code on global space
Code on global space
Code on global space
Code on global space
15. throw new Exception('This application must be run on the command line.');
19. * Returns an authorized API client.
20. * @return Google_Client the authorized client object
22. function getClient() {
New instance (Google_Client)
23. $client = new Google_Client();
24. $client->setApplicationName(APPLICATION_NAME);
25. $client->setScopes(SCOPES);
26. $client->setAuthConfig(CLIENT_SECRET_PATH);
27. $client->setAccessType('offline');
29. // Load previously authorized credentials from a file.
Global function call (expandHomeDirectory)
30. $credentialsPath = expandHomeDirectory(CREDENTIALS_PATH);
31. if (file_exists($credentialsPath)) {
32. $accessToken = json_decode(file_get_contents($credentialsPath), true);
34. // Request authorization from the user.
35. $authUrl = $client->createAuthUrl();
36. printf("Open the following link in your browser:\n%s\n", $authUrl);
37. print 'Enter verification code: ';
38. $authCode = trim(fgets(STDIN));
40. // Exchange authorization code for an access token.
41. $accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
43. // Store the credentials to disk.
44. if(!file_exists(dirname($credentialsPath))) {
45. mkdir(dirname($credentialsPath), 0700, true);
47. file_put_contents($credentialsPath, json_encode($accessToken));
48. printf("Credentials saved to %s\n", $credentialsPath);
50. $client->setAccessToken($accessToken);
52. // Refresh the token if it's expired.
53. if ($client->isAccessTokenExpired()) {
54. $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
55. file_put_contents($credentialsPath, json_encode($client->getAccessToken()));
61. * Expands the home directory alias '~' to the full path.
62. * @param string $path the path to expand.
63. * @return string the expanded path.
65. function expandHomeDirectory($path) {
66. $homeDirectory = getenv('HOME');
67. if (empty($homeDirectory)) {
68. $homeDirectory = getenv('HOMEDRIVE') . getenv('HOMEPATH');
70. return str_replace('~', realpath($homeDirectory), $path);
73. // Get the API client and construct the service object.
Code on global space
Code on global space
Code on global space
74. $client = getClient();
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
75. $service = new Google_Service_Sheets($client);
77. // Prints the names and majors of students in a sample spreadsheet:
78. // https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
Code on global space
Code on global space
Code on global space
79. $spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms';
Code on global space
Code on global space
Code on global space
80. $range = 'Class Data!A2:E';
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
81. $response = $service->spreadsheets_values->get($spreadsheetId, $range);
Code on global space
Code on global space
Code on global space
Code on global space
82. $values = $response->getValues();
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
84. if (count($values) == 0) {
Code on global space
Code on global space
85. print "No data found.\n";
Code on global space
Code on global space
Code on global space
87. print "Name, Major:\n";
Code on global space
Code on global space
Code on global space
88. foreach ($values as $row) {
89. // Print columns A and E, which correspond to indices 0 and 4.
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
Code on global space
90. printf("%s, %s\n", $row[0], $row[4]);