いつもお世話になっております。
環境:Garoonクラウド版 + セキュアアクセス
質問事項:Garoon REST APIにて、全ユーザーの施設予約情報を一括取得を行いたい。
https://(サブドメイン名).cybozu.com/g/api/v1/schedule/events
RestAPI実行時には、参加者に「実行ユーザ」が含まれている場合には表示されるが、
含まれていない場合には表示されない。下記のような注意事項がございますが、
RestAPI実行ユーザに対してどのようなアクセス権を付与することで可能となりますでしょうか。
>注意事項:
>要求パラメータで指定された条件に一致するレコードの中で、閲覧権限がないレコードを除外して返します。
本件で過去ログやマニュアル、Webサイト検索情報などで色々と試しましたが、
「そもそも仕様的に不可なのか、それとも回避方法があるのか」と、
つまずいてしまい質問させていただいた次第です。
どうぞよろしくお願いいたします。
Noriaki Aizawa さん
こんにちは。ひよこです。
ドキュメントのコメントで、過去のやり取りを見ると、以下の仕様になっているみたいです。
・targetとtargetTypeで出席者(ユーザー)以外を指定していない場合は、APIを実行したユーザーが参加している予定のみ取得する
なので、APIを実行したユーザーが参加していない予定を取得するときは、target と targetType を指定しないといけないようです。
ただし、target は複数指定できないので、1回のリクエストでは、Garoon に登録されているすべての予定はとれないですね。
ぱっと思いついた回避策は、こんな感じです。
方法1:target にユーザのIDを指定してAPIを実行する、これをすべてのユーザーのIDに対して行う。
方法2(現実的ではないかもですが):API実行用のユーザーを作り、必ず予定の参加者に追加してもらう。APIは実行用のユーザーで実行する。
> 要求パラメータで指定された条件に一致するレコードの中で、閲覧権限がないレコードを除外して返します。
これは、「APIを実行したユーザーが参加していない(=閲覧権限がない)非公開の予定は取得できない」という意味だと思います。
非公開の予定を取得するのは、回避策はないようです(参考にしたコメント)
運用で非公開な予定を作ることを禁止するか、必ず APIの実行専用のユーザーを作っておき、かならず予定の参加者に追加してもらうくらいでしょうか…。
ひよこさん
回答ありがとうございます。
方法1を試してみて、駄目そうでしたら方法2にてある意味仕様ということで運用回避を考えます。
「運用で非公開な予定を作ることを禁止し、必ず APIの実行専用のユーザーを入れること」
どうもありがとうございました。