bitcko/ yii2-bitcko-google-calendar-api
Bitcko Yii2 Google Calendar Api 扩展用于创建和删除 Google 日历中的事件
dev-master
2019-03-01 11:32 UTC
Requires
- google/apiclient: ^2.0
- yiisoft/yii2: ~2.0.0
This package is not auto-updated.
Last update: 2024-09-21 17:57:06 UTC
README
Yii2 Bitcko Google Calendar Api 扩展用于创建和删除 Google 日历中的事件
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require bitcko/yii2-bitcko-google-calendar-api:dev-master
或者
"bitcko/bitcko/yii2-bitcko-google-calendar-api": "dev-master"
将以下内容添加到你的 composer.json
文件中的 require 部分。
用法
扩展安装完成后,只需在代码中使用它即可
- 从Google 开发者控制台下载 client_secret.json 文件。
- 将 client_secret.json 文件移动到 app/config 目录。
- 控制器示例
<?php namespace app\controllers; use yii\helpers\Url; use yii\web\Controller; use bitcko\googlecalendar\GoogleCalendarApi; /** * GoogleApi controller. * * @package app\controllers * @author Mhmd Backer shehadi (bitcko) <www.bitcko.com> */ class GoogleApiController extends Controller { public function actionAuth(){ $redirectUrl = Url::to(['/google-api/auth'],true); $calendarId = 'primary'; $username="any_name"; $googleApi = new GoogleCalendarApi($username,$calendarId,$redirectUrl); if(!$googleApi->checkIfCredentialFileExists()){ $googleApi->generateGoogleApiAccessToken(); } \Yii::$app->response->data = "Google api authorization done"; } public function actionCreateEvent(){ $calendarId = 'primary'; $username="any_name"; $googleApi = new GoogleCalendarApi($username,$calendarId); if($googleApi->checkIfCredentialFileExists()){ $event = array( 'summary' => 'Google I/O 2018', 'location' => '800 Howard St., San Francisco, CA 94103', 'description' => 'A chance to hear more about Google\'s developer products.', 'start' => array( 'dateTime' => '2018-06-14T09:00:00-07:00', 'timeZone' => 'America/Los_Angeles', ), 'end' => array( 'dateTime' => '2018-06-14T17:00:00-07:00', 'timeZone' => 'America/Los_Angeles', ), 'recurrence' => array( 'RRULE:FREQ=DAILY;COUNT=2' ), 'attendees' => array( array('email' => 'lpage@example.com'), array('email' => 'sbrin@example.com'), ), 'reminders' => array( 'useDefault' => FALSE, 'overrides' => array( array('method' => 'email', 'minutes' => 24 * 60), array('method' => 'popup', 'minutes' => 10), ), ), ); $calEvent = $googleApi->createGoogleCalendarEvent($event); \Yii::$app->response->data = "New event added with id: ".$calEvent->getId(); }else{ return $this->redirect(['auth']); } } public function actionDeleteEvent(){ $calendarId = 'primary'; $username="any_name"; $googleApi = new GoogleCalendarApi($username,$calendarId); if($googleApi->checkIfCredentialFileExists()){ $eventId ='event_id' ; $googleApi->deleteGoogleCalendarEvent($eventId); \Yii::$app->response->data = "Event deleted"; }else{ return $this->redirect(['auth']); } } public function actionCalendarsList(){ $calendarId = 'primary'; $username="any_name"; $googleApi = new GoogleCalendarApi($username,$calendarId); if($googleApi->checkIfCredentialFileExists()){ $calendars = $googleApi->calendarList(); \Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; \Yii::$app->response->data = $calendars; }else{ return $this->redirect(['auth']); } } }