GAS向Google群组添加非域成员无效

时间:2016-08-12 12:59:51

标签: google-apps-script

我想创建一个电子表格,让用户创建自己的Google群组以用于邮件列表。

我可以使用以下代码将域成员添加到grup:

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]加入:mygropu@mydomain.it用户电子邮件失败:user@otherdomanin.it角色:MEMBER错误:例外:输入无效:memberKey

2 个答案:

答案 0 :(得分:0)

由于错误日志显示异常Invalid Input: memberKey,这意味着您可能无法提供真正的memberKey / authentic成员密钥。 memberKey是用户或群组的邮件电子邮件地址,用户的别名电子邮件地址或用户的唯一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

答案 1 :(得分:0)

我做了一些测试,找到了线索!

例外:"未找到资源:email@otherdomain.com"当另一个域名是gmail.com并且邮件地址不存在时,它会上升。

使用任何其他域甚至可用于不存在的地址!我认为G.A.S.只检查他自己的域名地址,但不能检查其他域名。