!DOCTYPE html> PHP_Testability report

quickstart.php

 
Procedures Status
getClient Issues 2
expandHomeDirectory Testable
 
 
1. <?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)
12. ));
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.');
16. }
18. /**
19. * Returns an authorized API client.
20. * @return Google_Client the authorized client object
21. */
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);
33. } else {
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);
46. }
47. file_put_contents($credentialsPath, json_encode($accessToken));
48. printf("Credentials saved to %s\n", $credentialsPath);
49. }
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()));
56. }
57. return $client;
58. }
60. /**
61. * Expands the home directory alias '~' to the full path.
62. * @param string $path the path to expand.
63. * @return string the expanded path.
64. */
65. function expandHomeDirectory($path) {
66. $homeDirectory = getenv('HOME');
67. if (empty($homeDirectory)) {
68. $homeDirectory = getenv('HOMEDRIVE') . getenv('HOMEPATH');
69. }
70. return str_replace('~', realpath($homeDirectory), $path);
71. }
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  
86. } else {
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]);
91. }
92. }
 
Generated Thu, 11 Jan 2018 21:56:06 -0800 by PHP_Testability