Google Apps Calendar Resource API を活用し、カレンダーアプリで、Calendar Resourceの情報を展開できるか調査しています

2,127 views
Skip to first unread message

myam...@appsdev.neoscorp.ne.jp

unread,
Oct 22, 2013, 2:41:27 AM10/22/13
to google-app...@googlegroups.com
はじめまして、山本と申します。
 
現在、GoogleAppsのカレンダーデータを連携して、GAEにてカレンダーアプリを作成しております。
 
機能として主に、個人スケジュールと会議室など設備予約にあたるもので作成中です。
 
問題として、GoogleApps側で設備予約をする場合、カレンダーリソースを用いると思いますが、
これをGAEに連携し、リソース内のイベントデータを展開できないかと調査を行っております。
 
しかし、なかなかノウハウを身に着けようにも、文献が見つけ憎く、
どこか参考になるページや書籍などが御座いましたら、ご教示お願い致します。
 

soundTricker

unread,
Oct 22, 2013, 3:25:09 AM10/22/13
to google-app...@googlegroups.com
こんにちは大橋(soundTricker サントリー)です。

ちょっとどのようなアプリケーションを作るのかが
細かくわからない(複数のAppsドメイン向けのアプリケーションなのか、単一のAppsドメイン向けなのか等)ので、
ズレた回答になってしまうかもしませんが、

おっしゃるようにAppsのカレンダーリソース(カレンダーそのもの)を取得、追加、削除するためのAPIはCalendar Resource APIとなります。

これを利用するにはAppsの管理者権限が必要です(確か)

また上記APIで取得したカレンダーリソースからイベントの取得、登録などなどを行う場合は
通常のCalendar APIを利用することになります。

※Calendar APIだけでもカレンダーリソースの情報は取ってこれます。 確か

>他の方々
あまりいっぱいCalendar Resource APIは使ってないので認識間違ってたら指摘・追記お願いします。

Soshi HANAMURA

unread,
Oct 22, 2013, 3:46:13 AM10/22/13
to google-app...@googlegroups.com
初めまして、花村と申します。
以前似たような、GAE上でAppsのCalendarを表示するアプリを作っておりました。

少し知識が古くなっていたら恐縮ですが、
大橋さんのおっしゃるとおり、Domainに所属する設備のカレンダー
はCalendarResourceAPIから取得できたと思います。

ただこちらのAPIには管理者権限をもつアカウントが必要になりますので、
一旦管理者権限をもつアカウントで設備calendarのID一覧を取得、保存しておいて、
通常のアカウントからは、そのIDに対して予定のリクエストをすることで実現できたと思います。

CalendarAPI単体であれば、個人のMyCalendarに登録してある設備は取得できますが、
Domainに所属する設備一覧となると上記APIが必要になると思います。
また、管理者権限で取得した設備ではありますので、
閲覧権限等関しては、別途考えてあげる必要があるかと思います。

またマルチドメインのAppsに関しては、
primary domainからしかResourceAPIが使えなかった気がします。

今は状況変わってるかもしれません。
認識違いあればご指摘お願いいたします。。

myam...@appsdev.neoscorp.ne.jp

unread,
Oct 22, 2013, 4:22:12 AM10/22/13
to google-app...@googlegroups.com
花村 様
 
ご教授頂きまして、誠に有難うございます。
 
アプリは、複数アカウントを対象としたものになります。
 
一度、CalendarResourceAPIを管理者権限で、リソースのID(メールアドレス)を取得し、
DataStoreに保存して、他の一般アカウントでも参照できるように設計したいと思います。
 
カレンダーアプリはJAVAを使用しており、CalendarResourceAPIの使用例が
developersから、見受けられなかったので少々困惑しましたが、
引き続き調査を行います。
 
 

2013年10月22日火曜日 16時46分13秒 UTC+9 Soshi HANAMURA:

myam...@appsdev.neoscorp.ne.jp

unread,
Oct 22, 2013, 4:27:04 AM10/22/13
to google-app...@googlegroups.com
大橋 様
 
ご教授誠に有難う御座います。
 
今回は、複数のアカウントで使用するカレンダーアプリを作成しております。
言語はJAVAになります。
 
Calendar Resource APIを使用してまず、リソースIDを取得後、再度、
Calendar APIにて、イベントを取得するイメージになりますでしょうか。
 
Calendar Resource APIでまず、リソースIDを取得する方法を引き続き調査を行います。
 
>※Calendar APIだけでもカレンダーリソースの情報は取ってこれます。 確か
 
此方の情報についても、興味深いので合わせて調査してみます。
 

2013年10月22日火曜日 16時25分09秒 UTC+9 soundTricker:

soundTricker

unread,
Oct 22, 2013, 4:49:41 AM10/22/13
to google-app...@googlegroups.com
花村さん

フォローありがとうございます。
そうですね。ドメインに所属するリソースを取る場合はカレンダーリソースAPIの方になるはずです。
利用するユーザがそのカレンダーリソースを参照している場合(カレンダーの追加を行っている場合?)のみ取れるはずです。

>Calendar Resource APIを使用してまず、リソースIDを取得後、再度、
>Calendar APIにて、イベントを取得するイメージになりますでしょうか。

僕が作っているアプリではそういう感じにやっています。




 

Tatsuya Nakano

unread,
Oct 24, 2013, 10:38:04 AM10/24/13
to google-app...@googlegroups.com
通常JavaでGoogle APIを叩く場合はjava client(https://code.google.com/p/google-api-java-client/wiki/DeveloperGuide)を使えば良いのですが
残念ながらその中にCalendar Resouce APIは用意されていないようです。(XMLベースの古いAPIは最近のライブラリには入れてくれない・・・)

ライブラリがありませんので自前でHTTP通信を行うモジュールを作ってしまうのが一般的?なのでしょうか。
カレンダーリソースを取得するだけならばAuthorizationヘッダーにAccessTokenをセットしてURLを叩くだけです。

AccessTokenの取り方は以下のURLを参考に試してみてください


Shinichi Ogawa

unread,
Oct 25, 2013, 2:33:36 AM10/25/13
to google-app...@googlegroups.com
> ライブラリがありませんので自前でHTTP通信を行うモジュールを作ってしまうのが一般的?なのでしょうか。
> カレンダーリソースを取得するだけならばAuthorizationヘッダーにAccessTokenをセットしてURLを叩くだけです。

それがシンプルだし簡単です。

OAuth2を使い、対象ドメインのAppsの管理者権限を持つ人に認可してもらってrefresh tokenを取得し、
裏側で定期的にCalendar Resource APIを叩くときにaccess tokenを取得し直す…というやり方になります。


2013/10/24 Tatsuya Nakano <tatsuy...@gmail.com>:
> --
> このメールは Google グループのグループ「Google Apps API Japan」の登録者に送られています。
> このグループから退会し、メールの受信を停止するには、google-apps-api-...@googlegroups.com
> にメールを送信します。
> このグループに投稿するには、google-app...@googlegroups.com にメールを送信してください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。
Reply all
Reply to author
Forward
0 new messages