Google Appsアカウント[email protected]
とproject-1
(GoogleデベロッパーコンソールでGoogle App Engineアプリケーションとして設定されています)と、それに属する電子メールアドレスが[email protected]
のサービスアカウントがあるとします。GoogleカレンダーAPIを使用してサービスアカウントで作成したカレンダーを所有しているユーザーと、そのユーザーをどのように共有できますか?
私は、このサービスアカウントを使ってカレンダーを作成し、その項目をプログラムによって操作する方法を知っています。Google APIs Client Library(サービスアカウントの資格情報を持つJavaバージョン)を使用して、Google App Engineアプリケーション内でGoogleカレンダーAPIを呼び出し、それだけです。しかし、このように作成されたカレンダーは、Googleアカウントではなく、サービスアカウントによって明確に所有されているようです。私は次の観察から、これを結論:私はGoogle Calendar UIで私のGoogleアカウントのカレンダーを表示すると
- は、プログラムによって作成されたカレンダーのどれも
My calendars
の下に表示しません。 - このようなカレンダーにアクセスしようとすると、
Other calendars
|とサービスアカウントの電子メールアドレスでは、要求を送信できますが、決して答えられません(おそらく、サービスアカウントの電子メールアドレスが「実際の」電子メールアドレスではないため)。 - プログラムでカレンダーを作成するときは、
CalendarListEntry#hidden
を設定しないので、defaultfalse
を適用する必要があります。
私の質問は次のとおりです。通常のGoogleカレンダーWeb UIでは、GoogleカレンダーAPI(および私の場合はJavaクライアント)を使用してプログラムで作成されたカレンダーとカレンダーエントリにアクセスするにはどうすればよいですか。たとえば、サービスアカウントで所有するGoogleアカウントとカレンダーを共有できますか、UIのサービスアカウントの資格情報でGoogleアカウントのカレンダーを直接操作できますか?
私は同じトピックについていくつかの以前の質問があることを認識していますが、これまでのところ私の謎を解決する助けにはなりませんでした。
を使ってディスカッションすると、同じことをやろうとしているようです。あなたはこの質問をチェックできますか?複数の人のカレンダーを更新したいときはどうしますか? http://stackoverflow.com/questions/23469075/is-service-account-in-google-calendar-api-v3-the-replacement-of-domain-consume-k –
@JinzhaoHuoこれは現在、サービスで私のために働くアカウント(およびJava) - 受け入れられた回答を参照してください。複数の人のカレンダーがある場合、複数のサービスアカウントを使用する必要があるかもしれません... – Drux
ありがとう、しかし私はそうは思わない。たとえば、私の会社に従業員が100人いるとしたら、カレンダーを更新するために100のサービスアカウントを作成する必要がありますか?意味がないようです。たぶん私は各従業員のためのGoogleのクライアントとカレンダーサービスを再構築し、従業員を偽装するサービスアカウントを持っている必要があります。 –