如何使用自动化授予徽章?

抱歉,又是我 :slight_smile:

你提到自动化插件可以帮助授予徽章。也许你有一些关于如何做到的提示?我在下拉菜单中找不到任何相关内容:

1 个赞

查看 commit,它似乎应该可用于 send_pmszapier_webhook 脚本:

此触发器需要一个 badge 作为必填字段,并接受一个可选的 only_on_first_grant 字段。目前可用于:send_pmszapier_webhook 脚本。

3 个赞

抱歉,可能不太清楚,让我来解释一下。

目前我们只有一个授予徽章的触发器,这意味着我们可以在用户获得徽章时调用脚本。但我们并没有你现在所说的“用于授予徽章的脚本”,该脚本会在某个事件(加入特定群组?)触发。如前所述,我们目前最好的解决方案是 Creating triggered custom badge queries

4 个赞

非常感谢您的帮助!

我真的很希望我们能设置一个 API,在用户发布第一篇帖子时授予他们徽章 :pray:t2:

谢谢!

这非常有帮助!

Helga,您好:

如果您想自动授予徽章,最佳方法是通过 SQL 查询来完成。

您可以在管理后台 → 徽章 (admin->badges) 中找到它。

然后向下滚动查找 SQL 查询。

如果您在 meta.discourse.org 上搜索,可能会幸运地找到有人已经编写了您想要的查询。

我最喜欢的查询是在某人加入群组时授予徽章。下面的示例在用户加入“discourse-admin”群组后的 24 小时内授予徽章。

select user_id, created_at granted_at, NULL post_id
from group_users
where group_id = (
  select g.id from groups g where g.name = 'discourse-admin'
)

我将以下设置与徽章的查询一起使用:

为此,您需要启用自定义 SQL 徽章,但这并非对所有人都可用,具体取决于您的托管服务:

不过,也建议使用 API 作为替代方案。

哦,哇,我不知道那个。感谢 @JammyDodger 的提示!

我想也可以从 Data Explorer 插件中获取 SQL 查询结果,然后使用 api 来授予徽章。

2 个赞