Google API 客户端授权:内部服务器错误 500

问题描述 投票:0回答:1

我正在远程 Web 服务器上使用 OAuth 2.0 for Web Server 应用程序示例代码。

$client->authenticate(...) causes 

内部服务器错误 500。

不知道为什么,你能帮我吗?

这是网址:http://imperiousgroup.com/gdrive/

这是代码:

//index.php
require_once(__DIR__ ."/api/vendor/autoload.php");    
session_start();    
$client = new Google_Client();    
$client->setAuthConfig('client_secrets.json');    
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);    
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {    
    $client->setAccessToken($_SESSION['access_token']);    
    $drive_service = new Google_Service_Drive($client);    
    $files_list = $drive_service->files->listFiles(array())->getItems();    
    echo json_encode($files_list);    
} else {    
    $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/gdrive/oauth2callback.php';    
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));    
}    

//oauth2callback.php    
require_once __DIR__ .'/api/vendor/autoload.php';    
session_start();    
$client = new Google_Client();    
$client->setAuthConfigFile('client_secrets.json');    
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/gdrive/oauth2callback.php');    
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);    
if (!isset($_GET['code'])) {    
    $auth_url = $client->createAuthUrl();    
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));    
} else {    
    $client->authenticate($_GET['code']);    
}
php oauth-2.0 authorization google-oauth internal-server-error
1个回答
0
投票

您使用的是哪个 PHP 版本? 我遇到了类似的问题,因为我使用 PHP 5.3,而 google api 技术上需要 5.4+。

如果无法更新它,我可以使用此处描述的解决方案解决我的特定问题: SO链接

curl_reset()
的调用位于 google api 客户端文件夹中的
/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php
中。

© www.soinside.com 2019 - 2024. All rights reserved.