🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1275閲覧

googlecalendarとfullcalendarの連携

Szi

総合スコア1

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/03/26 05:07

前提・実現したいこと

fullcalendar,googlecalendarを使いfullcalendar側で
作成した予定をgooglecalendarに反映させたいです。

googlecalendar側に予定の追加、削除は出来るようになったものの、変更が出来ずに困っています。
エラーの内容は以下の通りです。
なぜこのようになるのか
なにが原因なのか分からず困っております。
宜しくお願い致します。

発生している問題・エラーメッセージ

Exception in REST.php line 128: { "error": { "errors": [ { "domain": "global", "reason": "badRequest", "message": "Bad Request" } ], "code": 400, "message": "Bad Request" } }

該当のソースコード

/** googleカレンダーとの連携処理 **/ $client = $this->getClient(); $service = new Google_Service_Calendar($client); $calendarId = env('GOOGLE_CALENDAR_ID'); $optParams = []; //イベントリスト取得 $event_list = $service->events->listEvents($calendarId,$optParams); //イベント取得 $save = $event_list->getItems(); //イベントID取得 $eventId = $event->google_eventId; //イベントIDに対応するイベント取得 $google_event = $service->events->get($calendarId,$eventId); //タイトル $google_event->setSummary($request['title']); //内容 $google_event->setDescription($request['memo']); //色 $google_event->setColorId("1"); //開始時間 $start = new Google_Service_Calendar_EventDateTime(); $start->setDateTime($request['startdate']. 'T'.$request['starttime'] . '+09:00'); $google_event->setStart($start); //終了時間 $end = new Google_Service_Calendar_EventDateTime(); $end->setDateTime($request['enddate']. 'T'.$request['endtime'] . '+09:00'); $google_event->setEnd($end); //ここでエラーが出る $updateedEvent = $service->events->update($calendarId,$eventId,$google_event);

試したこと

参考として下記のサイトを参考にしました
googleカレンダー連動参考にしたサイト

googlecalendar_api

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lulucom

2021/03/27 06:43

エラーメッセージはそれだけでしょうか。他にも、そのエラーになった理由なども出力されていないでしょうか?
Szi

2021/03/28 23:49

出てきたエラーメッセージはこれだけでした。 googleAPIと書いてあるリンク先にあるtry this API というところでupdate,insertのところを試すと Start and end times must either both be date or both be dateTimeとエラーが出てきたことが分かりましたのでイベントの開始時間と終了時間の記述方法が何かしら違う事はわかりましたが、どのように書けばよいかわからなくて困っております。
Lulucom

2021/03/29 10:51 編集

ありがとうございます。 質問文を後から編集できますので、質問文へ追記していただくと良いでしょう。 こちらの欄だと、他に回答される方が、見落としてしまう恐れがあります。 $request['startdate']. 'T'.$request['starttime'] . '+09:00' や $request['enddate']. 'T'.$request['endtime'] . '+09:00' が 最終的にどういう文字列になるかも調べて追記されると良いでしょう。 おそらくそれらの文字列が意図された通りになっていないのではないでしょうか。
Szi

2021/03/30 02:58

回答ありがとうございます。 違う手法ですが $request['startdate']、$request['starttime']、$request['enddate']、$request['endtime']を 年・月・日・時・分・秒と分割し それぞれの開始時間・日付と終了時間・日付をcarbon化したことでうまくいきました。 ありがとうございました。
Lulucom

2021/03/30 03:12

いえいえ、回答ではなくただの追記依頼でした。 (このコメント欄は、回答欄ではなく、追記依頼の欄です) 自己解決できてよかったですね^ ^ ご自身で回答をお書きになって質問を閉じていただければと思います。
guest

回答1

0

自己解決

$request['startdate']、$request['starttime']、$request['enddate']、$request['endtime']を
年・月・日・時・分・秒と分割し それぞれの開始時間・日付と終了時間・日付をcarbon化したことでうまくいきました。

投稿2021/03/30 04:27

Szi

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問