3

ユーザーがログインしていないときに、ユーザーに代わって Google カレンダーの予定を管理するアプリケーションを構築したいと考えています。

アプリケーションは予約サービスであり、サブスクライブしているユーザー (当社のサービス プロバイダー) は利用できない時間を予約し、顧客にはサービス プロバイダーの Google カレンダーの空き時間情報が表示されます。

アプリケーションには、予定を作成、削除、および読み取る機能が必要です。

私は Google Developer's Console にアクセスし、Google Permissions 画面をポップアップし、新しい予定を正常に作成する URL にリダイレクトする作業コードを持っています。

他のカレンダーにもアクセスできますが、その時点で Google サービスにログインしている必要があります。

$client = new \Google_Client(); 
$client->addScope('https://www.googleapis.com/auth/calendar');
$service = new \Google_Service_Calendar($client);

$authUrl = $client->createAuthUrl();

ユーザーが自分のカレンダーを管理している場合、これは問題なく機能します。しかし、私は彼らに代わって予定を管理したいと考えています。これには、カレンダーに予定を入力する他の関係者が含まれます。つまり、カレンダーにログインしていない場合です。

アプリケーションがユーザーのカレンダーに永続的にアクセスするための永続的な権限が必要ですか?

これが可能かどうか誰にもわかりますか?問題にどのようにアプローチできるかについての考えをいただければ幸いです。

4

1 に答える 1

5

OAuth 2.0 サービス アカウントは、ユーザー アカウントにアクセスするための適切な方法です。

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

サービス アカウントのクライアント ID に、必要な Cal​​endar API スコープへのアクセスを許可する必要があります。

https://developers.google.com/drive/web/delegation#delegate_domain-wide_authority_to_your_service_account

その後、サービス アカウントはユーザーになりすまして、ユーザーに代わってカレンダー操作を実行できます。

https://developers.google.com/drive/web/delegation#instantiate_a_drive_service_object

これらのドキュメントでは Google ドライブについて説明していますが、カレンダーのプロセスは同じです。

于 2014-02-09T11:59:33.697 に答える