お世話になっております。
定年退職を期に開発を始めました。
言い回しや間違った点がありましたら指摘していただけますと幸いです。
例題の件ですが、phpのプログラムからCalendarAPIに接続し、スケジュールの登録と変更を行いたいです。
現状できていることは、スケジュールの登録、イベントidの取得、取得したイベントidのイベントの変更です。
やりたいことは、登録する際にすでに登録するイベントidがあるかどうかを調べるためイベントidを引数にとしてイベントを取得します。すでにイベントがある(空でないイベントが取得できた)場合はイベントの開催時間を変更(update)する。
イベントがない(空のイベントを取得)した場合は登録(insert)する。
発生している問題は、後者のイベントが登録されていない場合、存在しないイベントを取得しようとするのでエラーが発生するのですが、その例外をスローできておらずFatal errorが発生しております。
↓イベントを取得するプログラム
php
1 2<?php 3date_default_timezone_set('Asia/Tokyo'); 4require_once __DIR__.'/google-api-php-client/vendor/autoload.php' ; 5$json_path = __DIR__.'/google-api-php-client/key/*****.json'; 6$calendarId='******'; 7 8//接続用のクライアントの設定. 9$scopes = "https://www.googleapis.com/auth/calendar.events"; 10$client = new Google_Client(); 11$client->setApplicationName("********"); 12$client->setAuthConfig($json_path); 13$client->setScopes($scopes); 14if ($client->isAccessTokenExpired()) { 15 $client->refreshTokenWithAssertion(); 16} 17$service = new Google_Service_Calendar($client); 18 19//イベント取得 20$eventId = 20180129; 21$result = $service->events->get($calendarId, "eid"); 22 23?> 24 25
発生しているエラー↓
Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ "error": { "errors": [ { "domain": "global", "reason": "notFound", "message": "Not Found" } ], "code": 404, "message": "Not Found" } } ' in /ドメイン名/googlecalendar/google-api-php-client/src/Google/Http/REST.php:118 Stack trace: #0 /ドメイン名/googlecalendar/google-api-php-client/src/Google/Http/REST.php(94): Google_Http_REST::decodeHttpResponse(Object(GuzzleHttp\Psr7\Response), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #1 [internal function]: Google_Http_REST::doExecute(Object(GuzzleHttp\Client), Object(GuzzleHttp\Psr7\Request), 'Google_Service_...') #2 /ドメイン名/googlecalendar/google-api-php-client/src/Google/Task/Runner.php(176): call_user_func_array(Array, Array) #3 /ドメイン名/googlecalendar/google-api-php-client/src/Google/Http/REST.php(58): Google_Task_Runner->run() #4 /ドメイン名 in /ドメイン名/googlecalendar/google-api-php-client/src/Google/Http/REST.php on line 118
また、このプログラムはグーグルカレンダーにイベントを登録すると同時にDBにもイベント情報を登録していまうす。何らかのエラーでテーブルへの書き込みが中断されたらグーグルカレンダーもトランザクションするようなことは可能でしょうか。
拙い文章で申し訳ありませんがよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー