CakePHPCheckdomain Parking - standby.checkdomain.deを使ってみた。環境は XP SP2 + IIS + PHP 5.2.5 + CakePHP 1.2.0.6311。


/cake/lib/socket.php 内で fsockopen() を使いGoogleと接続するが、SSLを使うため、php.ini に extension=php_openssl.dll を追加する。自分の環境では、PHPフォルダの libeay32.dll,ssleay32.dllを%SYSTEM%\system32\へコピーする必要もあった。この時点で、コマンドプロンプトからiisresetを実行しておく。


/app/model/datasources/ に google_analytics_source.php をコピーし、/app/config/database.php の DATABASE_CONFIGクラス内に データ取得用の Google アカウント情報をセットする。

class DATABASE_CONFIG {
    public $default = array(...);

    public $analytics = array(
        'datasource'    => 'google_analytics',
        'user'          => '****@gmail.com',
        'password'      => '*****',
    );
}


上記サイトの AnalyticsController をそのまま拝借してファイルを作り、プロファイルの指定のみ変更するとデータは取得できた。


Google Analyticsのエクスポートの機能を使いデータを取得しているので、$this->Analytics->report()への引数はエクスポートのURLを参考にすればよい。ただし、'report'の指定には末尾の'Report'は不要(強制的に末尾に'Report'がつく)。ドリルダウンのデータを取得する場合、は次のようにする。

        $report = $this->Analytics->report(array(
            'profile' => '***',
            'report' => 'ContentDrilldown',
            'query' => array(
                'd1' => '/foo/bar/'
            ),
        ));