0

重要な編集: 問題の原因が Web サーバーであることがわかりました (修正方法がわかりません) - タグが変更されました。最新のXAMPPを使用しています。

このガイドに従って、OAuth を使用して Google アナリティクス API でサーバー間接続をセットアップしようとしています: サービス アプリケーションと Google アナリティクス 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) but I have no other calls to Google_AnalyticsService().

OpenSSL が有効になっている PHP バージョン 5.4.7 (XAMPP バージョン) を使用しています ( の uncommeting 行で有効になっていますphp.ini)。

ご回答ありがとうございます。このような問題に対処するにはどうすればよいですか (HTTP エラーが発生して停止しますか? 有用な情報を生成するログはありますか?)?

編集:投稿からコードをコピーすると: 「十分な権限がありません」Google アナリティクス API サービス アカウントを私にコピーすると、同じエラーが発生します (他のメッセージは出力されません)。

4

1 に答える 1

1

この問題に対処する方法を見つけました。これは、Apache と PHP が一緒に使用されていることが原因です。これらは異なるバージョンの OpenSSL を使用しています。

  • XAMPP 1.8.1 (リリース日 30.9.2012) での最初の回避策 (私が 05-28-3013 に書いているように私にはうまくいかないもの) は、Apache フォルダー内のファイルssleay32.dllをこれらのフォルダーから置き換えることです。mod_ssl は PHP の DLL で動作しないため、うまくいきません。libeay32.dll/bin/php
  • 2 番目の回避策は、他のパッケージをインストールすることです。個人的には、OpenSSL と Apache のバージョンを同期させた ZendServer に切り替えました。

もちろん、OpenSSL と mod_ssl が最新バージョンで連携していることを確認して、独自の Apache と PHP をいつでも構築できます。

于 2013-05-28T15:11:32.987 に答える