google api 로 공유할 id 추가
Try this API
ref. 1 에 가면 "Try this API" 부분이 있는데, 여기서 이 api 가 어떻게 동작하는지 판단하면 된다.아래는 koosal@gmail.com 이라는 user 를 공유에 추가하는 것이다.
POST https://www.googleapis.com/calendar/v3/calendars/<calendarId>/acl
calendarId: pnhuqt7otssumok0dhlg@group.calendar.google.com
{
"role": "reader",
"scope": {
"type": "user",
"value": "koosal@gmail.com"
}
}
Acl: insert
여기서는 Acl: insert 를 사용할 것이다. 이녀석은 calendar 에 공유할 id 를 추가하는 기능이다.아래는 ref.1 에 있는 php code 이다.
// Uses the PHP client library.
$rule = new Google_Service_Calendar_AclRule(); $scope = new Google_Service_Calendar_AclRuleScope(); $scope->setType("user"); $scope->setValue("koosal@gmail.com"); $rule->setScope($scope); $rule->setRole("reader"); $createdRule = $service->acl->insert('pnhuqt7otssumok0dhlg@group.calendar.google.com', $rule); echo $createdRule->getId();
full code
<?php require_once __DIR__ . '/../vendor/autoload.php'; putenv('GOOGLE_APPLICATION_CREDENTIALS='.__DIR__.'/service-account.json'); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); $client->setScopes(implode(' ', [ Google_Service_Calendar::CALENDAR] )); $service = new Google_Service_Calendar($client); $rule = new Google_Service_Calendar_AclRule(); $scope = new Google_Service_Calendar_AclRuleScope(); $scope->setType("user"); $scope->setValue("koosal@gmail.com"); $rule->setScope($scope); $rule->setRole("reader"); $calendarId = 'pnhuqt7otssumok0dhlg@group.calendar.google.com'; $createdRule = $service->acl->insert($calendarId, $rule); echo $createdRule->getId(); echo '';
laravel
- Laravel 5 + Google APIs Client Library | Crux : google client library 를 Service 로 등록하는 법이 나와 있다.
- autoload, classmap | he composer.json Schema
laravel 에서 사용할 때 주의할 점은 2가지 정도이다. 하나는 autoload 를 classmap 으로 하는 것이고, 다른 하나는 Controller 에서 Google_Client 등 google client library 사용할 때 \Google_Client 로 사용하면 된다.
"autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "vendor/google/apiclient/src/Google"] },
public function addIdToCalendar(Request $request) { ... $client = new \Google_Client(); $client->useApplicationDefaultCredentials(); $client->setScopes(implode(' ', [ \Google_Service_Calendar::CALENDAR] )); $service = new \Google_Service_Calendar($client); $rule = new \Google_Service_Calendar_AclRule(); $scope = new \Google_Service_Calendar_AclRuleScope(); ... return response()->json(['status' => 'success']); }
댓글 없음:
댓글 쓰기