您可以在论坛中自定义徽章,并通过 API 授予这些徽章。这是一种无需使用自定义徽章 SQL 即可授予徽章的绝佳方式。
要通过 API 授予徽章,您需要知道目标用户的用户名,以及您希望授予的徽章的 ID(或名称)。此外,请确保您已从网站的“管理 > API > 密钥”部分(/admin/api/keys)生成了 API 密钥。
查找徽章 ID
您可以从徽章的 URL 中获取徽章 ID。进入“管理/徽章”部分,然后点击您希望授予的徽章。URL 将类似于:https://forum.example.com/admin/badges/102。URL 中的最后一个数字即为徽章 ID。
发起 API 调用
要测试 API 调用,您可以尝试使用 curl 或 Postman 授予徽章。以下是我如何通过计算机终端使用 curl 授予徽章的示例。
首先,为方便起见,设置一个 api_key 变量:
api_key=yourapikey
然后,将 ID 为 102 的徽章授予用户 bobby:
curl -X POST "https://forum.example.com/user_badges" \
-H "Api-Key: $api_key" \
-H "Api-Username: system" \
-F "username=bobby" \
-F "badge_id=102" \
-F "reason=https://forum.example.com/t/whats-the-best-photo-youve-ever-taken/160/2"
除了 badge_id,您还可以使用 badge_name 通过徽章名称来标识徽章:
-F "badge_name=My Custom Badge"
reason 参数是可选的。如果您提供该参数,则必须将其设置为网站上某个主题或帖子的 URL。
您应该会收到一个包含徽章详情及授予时间的 JSON 响应。