8807


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

> Fatal error: Class 'Google_Service' not found in C:\xampp\htdocs\lansub\wp-
> content\plugins\practice\google-api-php-client-
> master\src\Google\Service\Analytics.php on line 32

というエラーが出ます。

[code]

    require_once '\src\Google\Client.php';
    require_once '\src\Google\Service\Analytics.php';
    
    // サービスアカウント名（メールアドレス）
    $service_account_name = 'xxxx@developer.gserviceaccount.com';
    // P12キーファイルのパス
    $key_file_location = 'C:\xampp\htdocs\lansub\wp-content\plugins\practice\xxxxxx.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();
    }
    
[/code]

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


CC BY-SA 3.0
2015-04-05T19:08:42.370
8799
2015-05-21T08:35:03.460
2015-04-07T12:32:49.903
7926
question
php wordpress google-analytics-api xampp
Google Analytics API v3 /Fatal error:Class 'Google_Service' not found


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

[code]

    require_once '\src\Google\Client.php';
    require_once '\src\Google\Service.php';
    require_once '\src\Google\Service\Analytics.php';
    
[/code]

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

[code]

    require_once '\src\Google\autoload.php';
    
[/code]

参考：[PHP クラスのオートローディング](http://php.net/manual/ja/language.oop5.autoload.php)


CC BY-SA 3.0
2015-04-06T02:50:11.240
8807
2015-04-06T02:50:11.240
7926
8799
answer


You have to include these lines in Analytics.php file to include all other
files.

[code]

    define('APP_PATH', dirname(__FILE__));
    require_once(APP_PATH . "/../Service.php");
    require_once(APP_PATH . "/../Model.php");
    require_once(APP_PATH . "/../Collection.php");
    require_once(APP_PATH . "/../Config.php");
    require_once 'Resource.php';`
    
[/code]

Its works for me.


CC BY-SA 3.0
2015-05-21T08:26:36.047
10457
2015-05-21T08:35:03.460
2015-05-21T08:35:03.460
208
9828
8799
answer