Google Analytics API v3 /Fatal error:Class ‘Google_Service’ not found

投稿者: user9026

初心者です。
ローカル環境の WordPress で簡単な自作のプラグインを作って、
そこに GoogleAnalytics の値を表示しようとしていのですが、うまくいきません。

Fatal error: Class ‘Google_Service’ not found in C:xampphtdocslansubwp-contentpluginspracticegoogle-api-php-client-mastersrcGoogleServiceAnalytics.php on line 32

というエラーが出ます。

require_once 'srcGoogleClient.php';
require_once 'srcGoogleServiceAnalytics.php';

// サービスアカウント名(メールアドレス)
$service_account_name = '[email protected]';
// P12キーファイルのパス
$key_file_location = 'C:xampphtdocslansubwp-contentpluginspracticexxxxxx.p12';
// アナリティクスのビューID 例)'ga:1234567'
$analytics_view_id = 'ga:xxxxxxx';

session_start();

if ( !strlen($service_account_name)
    || !strlen($key_file_location)) {
  echo missingServiceAccountDetailsWarning();
}

$client = new Google_Client();

if (isset($_SESSION['service_token'])) {
  $client->setAccessToken($_SESSION['service_token']);
}

$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
    $service_account_name,
    array('https://www.googleapis.com/auth/analytics'),
    $key
);
$client->setAssertionCredentials($cred);

if($client->getAuth()->isAccessTokenExpired()) {
  $client->getAuth()->refreshTokenWithAssertion($cred);
}

$_SESSION['service_token'] = $client->getAccessToken();

// アナリティクスクライアントを生成
$analytics = new Google_Service_Analytics($client);

try {
    // リアルタイムデータを取得する
    $results = $analytics->data_realtime->get(
            $analytics_view_id, // アナリティクスのビューID(アナリティクス設定 -> ビュー -> ビュー設定から確認)
            'rt:activeUsers'  // リアルタイムアクティブユーザー数を取得
    );

    // 取得結果からリアルタイムアクティブユーザ数を取り出す
    $totals = $results->getTotalsForAllResults();
    // activeUsers:ユーザ数 の配列に加工
    $array = array("activeUsers" => $totals["rt:activeUsers"]);

    // JSONに変換して表示
    header("Content-Type: application/json; charset=utf-8");
     header('Access-Control-Allow-Origin: *');
     echo json_encode($array);

} catch (apiServiceException $e) {
    echo $e->getMessage();
}

Analytics.php を見ても意味が分かりませんでした。
解決の糸口が何かないでしょうか。
よろしくお願いします。

解決

エラーの文言の通り、/src/Google/Service.php を include してみてください.

require_once 'srcGoogleClient.php';
require_once 'srcGoogleService.php';
require_once 'srcGoogleServiceAnalytics.php';

そしてこうした煩わしさから解放されるため、autoload.php も用意されています.

require_once 'srcGoogleautoload.php';

参考:PHP クラスのオートローディング

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *