質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.46%
Google API

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

PHP

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

Q&A

0回答

2581閲覧

Google Calendar Apiを利用して既存の予定にゲストを追加したい

Rmgh

総合スコア0

Google API

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

PHP

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

0グッド

0クリップ

投稿2021/01/05 04:01

編集2021/01/05 04:04

前提・実現したいこと

管理画面で入力されたメールアドレスをGoogleカレンダーの既存の予定にゲストとして追加したいです。
予定の新規登録、取得、ゲストを追加しない場合の更新は問題なく行えていますが、ゲストを追加しようとすると以下のエラーが発生します。

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

{ "error": { "errors": [ { "domain": "calendar", "reason": "forbiddenForServiceAccounts", "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } ], "code": 403, "message": "Service accounts cannot invite attendees without Domain-Wide Delegation of Authority." } }

該当のソースコード

php

1 try{ 2 $eventId = "イベントid"; 3 4 $client = new Google_Client(); 5 $client->setApplicationName('イベント更新'); 6 $client->useApplicationDefaultCredentials(); 7 $client->setScopes(array(Google_Service_Calendar::CALENDAR, Google_Service_Calendar::CALENDAR_EVENTS)); 8 $client->setAuthConfig(SERVICE_KEY_PATH); 9 $client->setSubject("サービスアカウント"); 10 $service = new Google_Service_Calendar($client); 11 12 $event = $service->events->get(CALENDAR_ID, $eventId); 13 14 $attendeeNew = new Google_Service_Calendar_EventAttendee(); 15 $attendeeNew->setEmail("example@example.com"); 16 $attendeeNew->setDisplayName("テスト"); 17 18 $attendees = $event->getAttendees(); 19 array_push($attendees, $attendeeNew); 20 $event->setAttendees($attendees); 21 22 $updatedEvent = $service->events->update(CALENDAR_ID, $eventId, $event); 23 }catch(Exception $e) { 24 echo $e->getMessage(); 25 exit; 26 }

以上です。
宜しくお願い致します。

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

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

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

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

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

Takumiboo

2021/01/05 05:52

「Service accounts cannot invite attendees without Domain-Wide Delegation of Authority.」でGoogle検索などは試されましたでしょうか。対応方法がいくつか出てくるようですが。
Rmgh

2021/01/06 03:29

検索や試行錯誤した結果詰まったので投稿させていただきましたので、その旨を記述するべきでした。 自分の見解ではおっしゃっている対応方法のほとんどはG-suiteアカウントで所属グループ内のユーザーを招待する場合にのみ適応できる内容で、現状サービスアカウントからの操作では物理的に不可能のようです。 もし具体的な方法をご存じであればご教授いただければ幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問