carmiac
(Adam)
1
我是某个组织论坛的管理员,该论坛设有多个会员级别,对应论坛中的自定义群组成员身份。目前,每个新会员都需要手动处理:我需要获取新会员的电子邮件地址,检查该地址是否与用户帐户相关联,然后将其添加到自定义群组。
我想要一个脚本,该脚本可以接受电子邮件地址列表,如果存在具有该地址的用户,则将其添加到群组;如果不存在,则发送一个已添加群组权限的邀请。我该如何编写这样的脚本?
谢谢!
编辑:
以下是示例:
我有这三个电子邮件地址:
alice@example.com - 属于一个论坛会员,但不是 SomeGroup 的群组成员
bob@foo.org - 属于一个论坛会员,并且是 SomeGroup 的成员
carol@bar.edu - 不属于任何论坛会员。
我想将与 alice@example.com 关联的用户添加到 SomeGroup(并发送欢迎消息),不对 bob@foo.org 的用户执行任何操作,并向 carol@bar.edu 发送带有群组成员资格标志的论坛邀请。
1 个赞
您可以配置该组,以便当用户使用特定电子邮件域(@example.com)注册时,他们会自动添加到组中。
转到组的管理选项卡、成员资格,然后在第一个部分“自动”中添加域。
carmiac
(Adam)
3
谢谢,但这在这里并没有真正帮助。我们的会员都使用个人电子邮件进行此操作,因此他们没有相同的域名。
1 个赞
您可以设置一个邀请链接并将其发送给客户,但我认为这仅在他们尚未注册时才有效。
转到“成员”选项卡,然后按“邀请”,配置邀请,然后按“保存邀请”。
如果您发送邀请链接,它也将适用于现有成员。
您甚至可以引导他们进入特定的主题,以便他们在到达时着陆,因此它可能适用于群组注册或活动。
如果您已经有地址列表,是否还有批量邀请功能?
2 个赞
不知道。我会查看 wiki,上面只写了在创建账户时。你能修复它吗,因为它不是 wiki? (Invite users to a group)
1 个赞
carmiac
(Adam)
7
让我举个例子,因为我的问题可能不够清楚。
我有这三个电子邮件地址:
alice@example.com - 属于一个不是 SomeGroup 组成员的论坛成员
bob@foo.org - 属于一个 SomeGroup 组成员的论坛成员
carol@bar.edu - 不属于论坛成员。
我希望脚本将与 alice@example.com 关联的用户添加到 SomeGroup(并可能发送欢迎消息),不对 bob@foo.org 的用户执行任何操作,并向 carol@bar.edu 发送带有组注册标志的邀请。
carmiac
(Adam)
8
好的,我明白了!它会向已有的成员发送通知,告知他们已被添加到群组吗?
与其使用电子邮件地址列表,不如使用 API 来实现此目的。因此,当用户注册时,您应该使用此 API 自动将其加入群组:Discourse API Docs
这要求您在使用 API 时,用户也已在 Discourse 中创建。这可能需要更多的设置,但可以完全自动化您的流程,这样您就不需要手动上传用户电子邮件地址了。
2 个赞
carmiac
(Adam)
10
问题是,我实际拥有的是电子邮件地址列表,而不是用户名。我的组织通过姓名和电子邮件跟踪人员的会员级别,而不是论坛用户名,因为论坛只是该组织的一小部分。会员协调员每周都会向我发送一份新会员的姓名和电子邮件列表。发生这种情况时,他们可能已经拥有论坛帐户,也可能没有,因为我们有论坛的公共部分。
carmiac
(Adam)
11
这似乎不起作用。当我尝试发送邀请链接时,我收到“无需邀请 example@gmail.com,他们已经有账户了!”
我可能把自己搞糊涂了。
让我来研究一下,看看是否能用现有的论坛功能实现你想要的效果。
编辑:
我认为可以使用“批量邀请”选项来实现。如果你有一个包含电子邮件地址的 CSV 文件,第二列是你想将他们添加到的组,然后通过批量邀请工具运行该文件,它会向没有账户的任何人发送邀请邮件,并将现有成员添加到你在第二列输入的组中。不过,缺少的部分是,这不会生成一个通知来告知你已被添加到该组。
2 个赞
carmiac
(Adam)
13
批量邀请目前应该可以工作,谢谢!我想提交一个功能请求,以便在现有成员获得新权限时向他们添加一条消息。
1 个赞
我已经弄清楚了我的困惑。是链接在起作用,而不是电子邮件。
所以另一种方法是创建一个邀请链接(而不是电子邮件),然后将其通过电子邮件发送给您电子邮件列表中的所有人。新成员将被带到“创建帐户并接受邀请”页面,然后才能添加到组中并转到主题(如果您添加了该条件),已登录的现有用户将被添加到组中并直接转到您指向的主题,未登录的现有用户可以从“创建帐户并接受邀请”页面登录(尽管是否可以这样做有点模糊,但您可以在 js.create_account.subheader_title 中添加一些额外的文本来提供一些提示),然后添加到组中并转到主题:
但是,这种方法也不会发送通知说他们已被添加到组中,但是您确实有机会在初始邀请电子邮件中包含一个解释,这可能很有用?而且“到达主题”也可以以类似的方式用作着陆页。
我不确定这是否有帮助,但我很高兴我弄清楚了。
1 个赞