GAE上PHP脚本中的错误500

时间:2017-05-16 16:33:34

标签: php google-app-engine

我在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有什么变化吗?我不得不承认,自从我不得不查看这段代码以来,我想知道是否已经弃用某些东西,但我无法看到任何相关内容。任何想法都会受到欢迎。

非常感谢提前

2 个答案:

答案 0 :(得分:0)

发现问题。谷歌突然决定需要一个账单账户才能使用cURL.php。 2015年2月使用php5.5添加了cURL的使用,所以为什么它突然决定,2年后,没有任何警告,坚持使用账单账户是任何人的猜测。为了方便起见,我只是更改了配置以强制使用IO.Stream。一切正常。

答案 1 :(得分:0)

这是App Engine软件更新中的一个错误,该错误已经过回滚,因此您的原始代码应该再次运行。遗憾!