2017-05-16 26 views
0

我有一個相當簡單的PHP腳本,在GAE上運行,它接受來自客戶端的請求,調用Google Drive api以獲取使用固定刷新令牌的Access令牌,然後返回訪問令牌給客戶端。GAE上的PHP腳本中的錯誤500

這個腳本已經運行了三年多,兩個版本保持不變,但是現在它已經開始返回錯誤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

嘗試登錄到您的控制檯並檢查日誌 – Allan

回答

0

發現問題。 Google突然決定使用cURL.php需要一個結算帳戶。 2015年2月,php5.5增加了cURL的使用,所以爲什麼在2年後突然決定,沒有任何警告,堅持計費帳戶是任何人的猜測。爲了方便起見,我只是改變了配置來強制使用IO.Stream。現在一切正常。

0

這是App Engine軟件更新中的一個錯誤,此後該錯誤已回滾,因此您的原始代碼應該再次運行。抱歉!