【问题标题】:GAS adding a non domain member to google group doesnt workGAS 将非域成员添加到 google 组不起作用
【发布时间】:2016-08-12 12:59:51
【问题描述】:

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

我可以使用此代码将域的成员添加到组:

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@otherdominin.it 角色:成员错误:异常:无效输入:memberKey

【问题讨论】:

  • 可以通过网页版添加吗?您选择了Allow members external to this organization 吗?
  • 是的!我可以在网页版中添加非域地址,是的,允许外部成员

标签: google-apps-script


【解决方案1】:

由于错误日志显示异常Invalid Input: memberKey,这意味着您可能无法提供真实的memberKey/真实的memberKey。 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

【讨论】:

  • 这是否意味着我不能添加非域地址?但我可以在网络界面中做到这一点......
  • 我可以通过developers.google.com/admin-sdk/directory/v1/reference/members/… 的“立即尝试”来做到这一点...我的代码和您的示例中的 http 请求之间有什么区别吗?我不明白如何在 Google Apps 脚本中使用 HTTP 请求......
  • 我又做了一些测试,找到了线索!例外:找不到资源:当 otherdomain 是 gmail 并且邮件地址不存在时,email@otherdomain.com 会上升。即使对于不存在的地址,也可以使用任何其他域!我认为 G.A.S.只检查他自己的域地址,但不能检查其他域...(对不起,我不得不在回答中发帖)
【解决方案2】:

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

当 otherdomain 是 gmail.com 并且邮件地址不存在时,会出现“找不到资源:email@otherdomain.com”的异常。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-11
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多