さて、私はイントラネット用の Google Apps Script を書いています。Google ドライブのフォルダからファイルのリストを表示できるようにしたいと考えています。ただし、ユーザーがアクセスできるファイルのみを表示したいです。
getViewers
文字列のリストを返すメソッド があります。
https://developers.google.com/apps-script/class_file#getViewers
これに関する問題は、アクセス許可リストにある個人の電子メール アドレスを返しますが、グループ名を返すことです。GroupsManagerでグループ オブジェクトを取得する方法がないため、これは理想的とは言えません。グループ ID しか取得できません。
そんな中でもできることがいくつかあります。私が試したことの1つはこれでした:
var files = DocsList.getFolderById('0B_Zfq-SOMETHINGIJUSTMADEUP').getFiles();
for (f = 0; f < files.length; f++){
var viewers = files[f].getViewers();
var flag = false;
// userGroups is the list of group objects, from this session's user
for (i=0; i < usersGroups.length; i++){
var groupName = userGroups[i].getName();
if (viewers.indexOf(groupName) > -1){
flag = true;
}
}
if (flag){
// print the link to file within the HTML template
}
}
しかし、明らかな理由から、ページの読み込みに非常に時間がかかります。5分ほどでロードされます。私が本当に必要としているのは、getViewers
メソッドからグループの電子メール アドレスのリストを取得できることです。個々のユーザーのメールを返しますが、グループのグループ名を返すのは本当に奇妙に思えます。誰かがこれに対する解決策または回避策を知っていますか?