使用Google Apps脚本将用户添加到Google网上论坛

问题描述 投票:2回答:2

我正在尝试使用Google Apps脚本将用户添加到Google网上论坛。

这是我尝试过的代码:

// Adds a user to a Google Group
function addUsertoGroup(userEmail) {
  var userEmail = '[email protected]'
  var groupId = "[email protected]";
  var group = GroupsApp.getGroupByEmail(groupId);

  // If email is already in group
  try { var hasMember = group.hasUser(userEmail);}
  catch(e){Logger.log(userEmail+" is already in the group"); return}

  var newMember = {email: userEmail, role: "MEMBER"};

  // This is the line which is throwing an error
  AdminDirectory.Members.insert(newMember, groupId);

运行时,我收到一个错误:

对directory.groups.get的API调用失败,出现错误:找不到域。

任何帮助将不胜感激。

google-apps-script google-api google-groups
2个回答
2
投票

澄清

  • 您需要一个G Suite帐户才能使用AdminDirectory功能(或能够通过Apps脚本将用户添加到组中。
  • 您可以根据通过gmail配置的组设置添加https://groups.google.com或任何其他非相同域的用户,>
  • 解决方法

我通过script.gs拥有一个G Suite帐户,并且我测试了您共享的代码-完美:)除了需要从G Suite帐户启用的以下内容之外,还可以。

导航到资源>高级Google服务...]并启用Admin Directory API

Admin Directory API

就是这样。我创建了该组,启用了所有设置,使该组对所有人都可用,并且像一个超级按钮一样起作用。

让我知道您是否还需要进一步的澄清或帮助。

编辑注释:

所以,这也是我必须确保[[所有人

(甚至可以将域外的人添加为用户)的方式,如Set Groups for Business sharing options所示。当您转到Groups for Business并浏览设置时,您将启用以下至关重要的选项-Groups for Business

显然,您可以根据需要随意调整所有其他设置。

您正在尝试使用AdminDirectory服务,该服务仅对G Suite域中的G Suite管理员有效。因此,您需要拥有您的域,并且如果您将用户从您的域添加到域的组中,它将可以正常工作。

即。 [email protected]已添加到[email protected]

根据您的示例代码,您尝试将gmail.com用户添加到公共Google网上论坛,因为您不能使用管理目录API,因为您不是管理公共网上论坛的域的管理员。

并且在这种情况下,就像您一样,您只能使用GroupsApp服务,并且该服务仅允许您检查用户是否在ggroup中或该角色是什么。

=>使用GroupsApp服务,无法将用户添加到公共Google网上论坛。

斯特凡


-1
投票
您正在尝试使用AdminDirectory服务,该服务仅对G Suite域中的G Suite管理员有效。因此,您需要拥有您的域,并且如果您将用户从您的域添加到域的组中,它将可以正常工作。
© www.soinside.com 2019 - 2024. All rights reserved.