質問編集履歴

1

ソースコードと試したことを追加

2019/02/25 03:06

投稿

poteto4401
poteto4401

スコア57

test CHANGED
File without changes
test CHANGED
@@ -8,10 +8,102 @@
8
8
 
9
9
 
10
10
 
11
- 具体的には、 `timeMin` 、 `timeMax`に指定た範囲外の値が取得されたり、
11
+ オプションとしては、明日の10-21時から3ヶ月後の10-21時までを渡ています。
12
-
13
- 週ごとの定期イベントが取得できなかったりします。
14
12
 
15
13
 
16
14
 
17
15
  登録しているイベントを全て取得できる方法、もしくは、登録しているイベント以外の時間を取得できる効率的な方法を教えていただけると幸いです。
16
+
17
+
18
+
19
+ ### ソースコード
20
+
21
+
22
+
23
+ ```
24
+
25
+ public function getCalendarEvent()
26
+
27
+ {
28
+
29
+
30
+
31
+ // ...
32
+
33
+
34
+
35
+ $client = new \Google_Client();
36
+
37
+ $client->setScopes(\Google_Service_Calendar::CALENDAR_READONLY);
38
+
39
+ $client->useApplicationDefaultCredentials();
40
+
41
+ $service = new \Google_Service_Calendar($client);
42
+
43
+
44
+
45
+ $calendarId = カレンダーID;
46
+
47
+ $tomorrow = Carbon::tomorrow();
48
+
49
+ $start_date = $tomorrow->toDateString() . 'T10:00:00-21:00:00';
50
+
51
+ $end_date = $tomorrow->addMonths(3)->toDateString() . 'T10:00:00-21:00:00';
52
+
53
+ $optParams = array(
54
+
55
+ 'timeMin' => $start_date,
56
+
57
+ 'timeMax' => $end_date,
58
+
59
+ );
60
+
61
+ $results = $service->events->listEvents($calendarId, $optParams);
62
+
63
+ $events = $results->getItems();
64
+
65
+ return $events;
66
+
67
+ }
68
+
69
+ ```
70
+
71
+
72
+
73
+ ### 取得結果
74
+
75
+ 以下のように、オプションで渡した期間の範囲外のイベントが取得されます。
76
+
77
+ また、隔週のイベントなど定期的に登録しているイベントが取得されていないようにも思えます。
78
+
79
+ ```
80
+
81
+ +"start": Google_Service_Calendar_EventDateTime {#1231 ▼
82
+
83
+ +dateTime: "2019-03-01T14:00:00+09:00"
84
+
85
+ +"start": Google_Service_Calendar_EventDateTime {#1237 ▼
86
+
87
+ +dateTime: "2018-11-01T10:00:00+09:00"
88
+
89
+ +"start": Google_Service_Calendar_EventDateTime {#1243 ▼
90
+
91
+ +dateTime: "2019-01-21T18:30:00+09:00"
92
+
93
+ :
94
+
95
+ :
96
+
97
+ :
98
+
99
+
100
+
101
+ ```
102
+
103
+
104
+
105
+ ### 試したこと
106
+
107
+ オプションに `'singleEvents' => true` を追加し、定期的に登録しているイベントを取得してみましたが
108
+
109
+ 今度は、定期イベント以外のイベントが取得されていないようです。