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

时间:2017-01-22 10:12:32

标签: php api web authorization internal-server-error

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

$ client-> authenticate(...)导致

  

内部服务器错误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']);

}

1 个答案:

答案 0 :(得分:0)

您使用的是哪个PHP版本? 我有一个类似的问题,因为我使用PHP 5.3,而谷歌api技术上需要5.4+。

如果更新它不是一个选项,我可以通过使用此处描述的解决方案来修复我的具体问题: SO link

可以在google api客户端文件夹的curl_reset()中找到/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php的来电。