0

重要编辑:发现该问题是由我的网络服务器引起的(我不知道如何解决) - 标签已更改。我使用最新的 XAMPP。

我正在尝试按照本指南使用 OAuth 设置与 Google Analytics API 的服务器到服务器连接: 服务应用程序和 Google Analytics API V3:服务器到服务器 OAuth2 身份验证?

我有以下代码:

require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_AnalyticsService.php';

// create client object and set app name
$client = new Google_Client();
$client -> setApplicationName("------------"); // name of your app

// set assertion credentials
$client->setAssertionCredentials(
  new Google_AssertionCredentials(
    "------------@developer.gserviceaccount.com", // email you added to GA
    array('https://www.googleapis.com/auth/analytics.readonly'),
    file_get_contents("-:/-----------/-----/------/----/---------------------------------------------------.p12")  // keyfile you downloaded

));

// other settings
$client->setClientId("------------.apps.googleusercontent.com");           // from API console
$client->setAccessType('offline_access');  // this may be unnecessary?

// create service and get data
$service = new Google_AnalyticsService($client);

$ids = "ga:--------";
$startDate = "2013-05-01";
$endDate = "2013-05-26";
$metrics = "ga:visitors";

var_dump($service->data_ga->get($ids, $startDate, $endDate, $metrics));

这会导致 HTTP 错误 #101 (ERR_CONNECTION_RESET)。我的问题类似于:Service Applications and Google Analytics API V3: Error 101 (net::ERR_CONNECTION_RESET)但我没有其他调用Google_AnalyticsService().

我有启用 OpenSSL(通过取消注释行启用)的 PHP 版本 5.4.7(XAMPP 版本php.ini)。

提前感谢您的任何回答。如何处理这样的问题(产生一些 HTTP 错误并停止?是否有日志产生任何有用的信息?)?

编辑:从帖子中复制代码:对我来说“权限不足”谷歌分析 API 服务帐户会导致相同的错误(没有打印其他消息)。

4

1 回答 1

1

我找到了处理这个问题的方法。这是由 Apache 和 PHP 共同造成的——它们使用不同版本的 OpenSSL。

  • XAMPP 1.8.1(发布日期 30.9.2012)上的第一个解决方法(我在 05-28-3013 上写的那个对我不起作用)是用文件夹中的这些替换文件ssleay32.dlllibeay32.dllApache文件夹中的文件。它对我不起作用,因为 mod_ssl 不能与 PHP 的 DLL 一起使用。/bin/php
  • 第二种解决方法是安装其他软件包。就个人而言,我切换到 ZendServer,它具有 OpenSSL 和 Apache 的同步版本。

当然,您始终可以构建自己的 Apache 和 PHP,确保您有 OpenSSL 和 mod_ssl 合作并且是最新版本。

于 2013-05-28T15:11:32.987 回答