TL;DR
以下是错误消息:
sam@ssh:~$ php www/path/to/app/public/quickstart.php
Fatal error: Uncaught exception 'LogicException' with message 'refresh token must be passed in or set as part of setAccessToken' in /home/pueblo/www/path/to/app/vendor/google/apiclient/src/Google/Client.php:258
Stack trace:
#0 /home/pueblo/www/path/to/app/public/quickstart.php(55): Google_Client->fetchAccessTokenWithRefreshToken(NULL)
#1 /home/pueblo/www/path/to/app/public/quickstart.php(76): getClient()
#2 {main}
thrown in /home/pueblo/www/path/to/app/vendor/google/apiclient/src/Google/Client.php on line 258
这是我修改过的来自Google的PHP脚本的一部分:
require_once __DIR__ . '/../vendor/autoload.php';
// I don't want the creds to be in my home folder, I prefer them in the app's root
define('APPLICATION_NAME', 'LRS API Calendar');
define('CREDENTIALS_PATH', __DIR__ . '/../.credentials/calendar-php-quickstart.json');
define('CLIENT_SECRET_PATH', __DIR__ . '/../client_secret.json');
我还修改了expandHomeDirectory
,这样我就可以在不修改太多代码的情况下“禁用”它:
function expandHomeDirectory($path) {
$homeDirectory = getenv('HOME');
if (empty($homeDirectory)) {
$homeDirectory = getenv('HOMEDRIVE') . getenv('HOMEPATH');
}
return $path;
// return str_replace('~', realpath($homeDirectory), $path);
}
所以为了确认是我错了还是谷歌错了,我做了一个实验:昨晚我通过ssh启动了快速入门脚本来检查它是否工作正常,事实上它是可以工作的。因此我决定今天早上再次检查它是否像在我睡觉之前一样正常工作,但是它并没有。所以我认为谷歌的quickstart.php
出了问题。
我希望有人能帮助我,我已经查看了所有其他关于该主题的文章,但它们都过时了。