Google API客户端 - > authenticate()错误

时间:2017-01-23 23:25:37

标签: php google-calendar-api google-oauth

我正在摆弄 Google(日历)API 。我创建了一个小脚本,因此我可以将我的时间表导入到Google日历中,它在localhost上工作得很好。由于我也想尝试让它适用于其他人,我将所有内容上传到服务器,但它只是不想工作。

我更改了配置文件路径,重定向uri和来自dev的客户机密钥JSON。安慰。

它不起作用,它根本不起作用。

$client->authenticate ($_GET['code']);无法运行。

下面你可以看到我称之为callback.php的文件。这几乎是Google Dev的一对一副本。现场。 (在domain.com/import内)

require_once __DIR__.'/vendor/autoload.php';

session_start();

$client = new Google_Client();
$client->setAuthConfigFile('../../client_secret.json');
$client->addScope(Google_Service_Calendar::CALENDAR);
$client->setRedirectUri('https://' . $_SERVER['HTTP_HOST'] . '/import/callback.php');

if (! isset($_GET['code'])) {
    $auth_url = $client->createAuthUrl();
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
    $code = $_GET['code'];
    $client->authenticate($code); // <- If I comment out this line, it 'works' fine
    $_SESSION['access_token'] = $client->getAccessToken();
    $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

在Chrome中,即使使用HTTP 500 ERROR,我也会收到error_reporting set to E_ALL。在Firefox(移动设备)中,我只得到一个空白页面(即使我想要var_dump / echo某些东西)。

我再次将所有内容转移到我的localhost(更新了client_secret.json),一切正常。我的(共享主机)服务器的错误日志为空。

我非常感谢你对这个问题的帮助。

我查看了我的虚拟主机;他们说服务器时间准确,所以这不是问题。

我的虚拟主机告诉我他们改变了设置。我必须在.htaccess file中定义我的错误记录。所以我做了。 我现在收到卷曲错误60。我尝试过互联网为我提供的许多解决方案。但它们似乎都不起作用。我几乎放弃了(部分是因为我的虚拟主机)。

PS: 对我而言,将CURLOPT_SSL_VERIFYPEER设置为false不是有效的解决方案。对任何人来说都不应该。

0 个答案:

没有答案