2015-05-11 28 views
1

Cheers Everyone!Google Groups API - getUsers()您沒有權限查看該羣組的成員列表:

我有一個谷歌腳本,它通過使用getUsers()函數檢查電子郵件地址是否爲組的成員。

到目前爲止:

  • 我已經激活「管理SDK目錄服務」
  • 我有管理員權限

對於大多數確實是神奇的團體,但是我得到授權錯誤在有些團體的情況下。從登錄

錯誤消息:

  • 「您沒有權限查看該組的成員列表:FOO @欄」

任何想法可能是什麼問題? 任何事情都非常感謝。 謝謝!

+0

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。沒有明確問題陳述的問題對其他讀者無益。請參閱:如何創建最小,完整和可驗證示例。 – DaImTo

回答

1

問題是GroupsApp服務使用GROUP的權限來確定您是否可以查看成員列表。組的默認設置是限制對組的所有者和管理員的訪問。所以,你有兩個選擇:

1)讓自己組的所有者或管理者或

2)使用管理SDK來檢查組成員。 Admin SDK允許任何超級管理員查看組中用戶的列表。要了解用戶是否是一個組的成員,你將需要檢索組,然後通過成員列表迭代,然後比較針對用戶的每個成員,你正在尋找:

function isMember(groupKey,userKey){ 
    //groupKey: [email protected] 
    //userKey: [email protected] 

    var memberList = []; 

    //Get the members list from the group 
    var response = AdminDirectory.Members.list(groupKey); 
    memberList = memberList.concat(response.members); 
    while (response.nextPageToken){ 
     response = AdminDirectory.Members.list(groupKey,{pageToken: response.nextPageToken}); 
     memberList = memberList.concat(response.members); 
    } 

    if (memberList.length > 1){ 

     for (var x in memberList){ 
     if (memberList[x].email == userKey){return true;} 
    } 
    } 
} 

更多信息Here