我在GAE上运行一个相当简单的PHP脚本,接受来自客户端的请求,调用Google Drive api以使用固定刷新令牌获取Access令牌,然后将该访问令牌返回给客户端。 / p>
此脚本已运行超过三年,两个版本保持不变,但今天它已开始返回错误500.从日志中,完整错误为“Google_IO_Exception:无法解析主机'accounts.google.com' Google_IO_Abstract-> makeRequest(/ base / data / home / apps / s~b .... cs / 3-0 .... 5 / Google / IO / Curl.php)“。
仅在GAE上它失败了。如果我在本地运行脚本,它仍然可以正常工作。
脚本有两个部分。首先它收到请求:
if (isset($_GET['refresh'])) {
// Get new access token from refresh token
try {
$client->refreshToken($refresh_token);
$_SESSION['access_token'] = $client->getAccessToken();
$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}
catch (Google_Auth_Exception $e) {
.....
}
}
然后,在检索了访问令牌后,它将其返回给客户端:
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
try {
$client->setAccessToken($_SESSION['access_token']);
header("response:" . $_SESSION['access_token']);
exit;
}
catch (Google_Auth_Exception $e) {
.....
}
}
GAE有什么变化吗?我不得不承认,自从我不得不查看这段代码以来,我想知道是否已经弃用某些东西,但我无法看到任何相关内容。任何想法都会受到欢迎。
非常感谢提前
答案 0 :(得分:0)
发现问题。谷歌突然决定需要一个账单账户才能使用cURL.php。 2015年2月使用php5.5添加了cURL的使用,所以为什么它突然决定,2年后,没有任何警告,坚持使用账单账户是任何人的猜测。为了方便起见,我只是更改了配置以强制使用IO.Stream。一切正常。
答案 1 :(得分:0)
这是App Engine软件更新中的一个错误,该错误已经过回滚,因此您的原始代码应该再次运行。遗憾!