FuelPHPアプリからGoogle Calendar連携をする必要があったのでパッケージを探したところ fuel-packages-gdata を見つけたので試してみました。
作成者の方が詳しく説明してくれています: FuelPHPのGdataパッケージを作りました。- madroom project
こちらの説明で十分ですが、作業手順をメモしておきます。
Composerでインストール
# composer.json
"require": {
"php": ">=5.3.3",
"monolog/monolog": "1.5.*",
"mp-php/fuel-packages-gdata": "dev-master",
"fuelphp/upload": "2.0.1"
},
$ php composer.phar update
設定ファイルを fuel/app/config ディレクトリにコピーして各値をセットします。
$ cp fuel/packages/gdata/config/gdata.php fuel/app/config/
<?php
// fuel/app/config/gdata.php
return array(
'application_name' => 'Google Calendar Test',
'client_id' => '11111.xxxyyyzzz.apps.googleusercontent.com',
'client_secret' => 'xxxyyyzzz',
'redirect_uri' => 'http://localhost/gcal-sample/callback',
'api_key' => '',
'scopes' => array(),
'access_type' => 'offline',
);
常に使う場合は、config.php の always_load に指定します。
// fuel/app/config/config.php
'always_load' => array(
'packages' => array(
'auth',
'orm',
'gdata',
),
),
常に使う訳ではない場合は必要箇所で
Package::load('gdata');
Gdata::forge()したオブジェクトのclientがGoogle Data APIクライアントのオブジェクトになります。
datetime="2014-02-27T02:55:56+00:00">$gdata = Gdata::forge(
'Calendar',
$instance_name = 'default',
$config = array()
);
$gdata->client->setAccessToken(xxxx);
$cal = new Google_CalendarService($gdata->client);
$calList = $cal->calendarList->listCalendarList();
echo json_encode($calList['items'])
最近、GData Clientが新しくなったので、対応後は
$gdata = Gdata::forge(
'Calendar',
$instance_name = 'default',
$config = array()
);
$gdata->client->setAccessToken(xxxx);
$cal = new Google_Service_Calendar($gdata->client);
$calList = $cal->calendarList->listCalendarList();
echo json_encode($calList->items);