2016-08-12 10 views
0

我想創建一個電子表格,讓用戶創建自己的谷歌組郵件列表的目的。GAS添加一個非域名成員到谷歌組不工作

我可以域的成員添加到grups與此代碼:

function addGroupMember (groupEmail, userEmail,ruolo) { 
var member = { 
    email: userEmail, 
    role: ruolo 
}; 
try { 
    member = AdminDirectory.Members.insert(member, groupEmail); 
    Logger.log('User %s added as a member of group %s.', userEmail, groupEmail); 

}catch(e){ 
    Logger.log("adding in:" + groupEmail + " failed user email: "+ userEmail + " role: " + ruolo + " error:" + e); 
} 

但是,如果我嘗試添加非域的用戶(我可以在羣組管理做到這一點),它失敗,此錯誤:

[16-08-12 14:54:13:113 CEST]加入:[email protected]失敗用戶電子郵件:[email protected]角色:成員錯誤:例外:無效輸入:memberKey

+0

你可以通過網絡版本添加它們嗎?你是否選擇了「允許該組織外部的成員」? – ocordova

+0

是的!我可以在網頁版中添加非域名地址,並且允許外部成員 – uffa14

回答

0

我做了一些測試多了,發現線索!

例外情況:「未找到資源:[email protected]」在其他域名爲gmail.com且郵件地址不存在時上升。

即使對於不存在的地址,也可以使用任何其他域名!我認爲G.A.S.只檢查他自己的域名地址,但不能爲其他域名進行檢查。

0

As錯誤日誌顯示異常Invalid Input: memberKey,這意味着你可能無法給真正的成員密鑰/真實的memberKey。 memberKey是用戶或組priary電子郵件地址,用戶的別名電子郵件地址或用戶的唯一id

要獲得memberKey,您可以使用Members:get來檢索組成員的屬性。

HTTP請求:

GET https://www.googleapis.com/admin/directory/v1/groups/groupKey/members/memberKey 

響應:

{ 
    "kind": "admin#directory#member", 
    "etag": etag, 
    "id": string, 
    "email": string, 
    "role": string, 
    "type": string 
} 

id是該組成員的唯一ID。成員ID可以用作成員請求URI的memberKEy

+0

是否意味着我無法添加非域名地址?但我可以在網絡界面中執行此操作... – uffa14

+0

我可以通過https://developers.google.com/admin-sdk/directory/v1/reference/members/insert ...中的「立即嘗試」來完成它...我的代碼和你的例子中的http請求有區別嗎?我不明白如何在Google Apps腳本中使用HTTP請求.... – uffa14

+0

我做了一些測試,發現了線索! 例外情況:找不到資源:當其他域名爲gmail且郵件地址不存在時,[email protected]升起。 即使對於不存在的地址,也可以使用任何其他域名!我認爲G.A.S.只檢查他自己的域名地址,但不能爲其他域做...(對不起,我不得不回覆) – uffa14