Googleカレンダーを実装することにしました:
それ以前は、Google APIを使用していなかったため、最初に行ったのはドキュメントを見つけることでした。GITソースへのリンクがすぐにあると便利です。
最初のレーキ:指定されたドキュメントは、ソースコード内の他のオブジェクトにラップされたオブジェクトについて説明しています。 コードを検討し、インターネットで解決策を探して、カレンダーに接続するコードを作成し、最初のカレンダーを追加しました。
「どれだけ早く結果が出るのか、素晴らしいことです!」 ほぼすべての準備が整いました。残りはあまりありません。必要なすべてのカレンダーを追加し、それらにイベントをスローします」と考え、ブラウザーでカレンダーインターフェイスを開きました。
そして、ここで2番目のレーキが私を待っていました:インターフェースで追加されたカレンダーが見つかりませんでした。 それらが消えた場所を理解する方法? 作成されたカレンダーのリストを返すコードを書きました。 すでに10個あることが判明しましたが、どのように機能するのか、すべてが機能し、カレンダーが作成され、返されることさえありました。 しかし、彼らはそうではなかったので、インターフェースにはありません...
OK Google、私は何を間違えていますか?
もう一度掘らなければなりませんでした。 見つかった:カレンダーがサービスアカウントに追加されます(147837410720-t2rf13ce77not3h58ubgme3q682nr54@developer.gserviceaccount.com)。 カレンダーを表示するには、メインカレンダーにカレンダーを追加する必要があることがわかりました。
次のように追加します。
$service = GoogleAuth::getInstance(); $scope = new Google_Service_Calendar_AclRuleScope(); $scope->setType('user'); $scope->setValue(' @gmail.com'); $rule = new Google_Service_Calendar_AclRule(); $rule->setRole('owner'); $rule->setScope($scope); $result = $service->acl->insert($calId, $rule);
私はリラックスして楽しんで、カレンダーが作成され、イベントが記録され、すべてが時計のように機能しました。 しかし、ここで再び次の熊手が私を待っていました!
突然、重い月曜日に、Googleはエラー(invalid_grant)を出して、トークンの受け入れを停止しました。 暗い部屋で黒猫の部署全体を2日間検索しました。 見つけた。 最近の冬時間の変更により、サーバーはリアルタイムに遅れをとるようになりましたが、Googleはそれを好みませんでした。 時間を調整した後、動作しました。
カレンダーが機能している間、Googleからの次のレーキを待ち望んでいます。
問題の解決策を見つける時間を短縮するために、この投稿で誰かを助けることができればうれしいです。