pnoeric
(Eric)
1
我的情况是这样的:我通过 SSO 使用 Discourse。我的主站成员可能从未访问过论坛(至少目前如此),但我希望向他们展示最新或热门的话题,以吸引他们点击,看看自己错过了什么。
然而,在他们首次进入论坛之前,他们还没有 Discourse 个人资料。(根据 SSO 的设计,个人资料会在首次登录时创建。)
这就带来了一个问题:如果我向 Discourse 请求最新活动,要么必须指定一个有效的用户(而在此情况下该用户并不存在),要么得到的列表会包含位于私有分类(受群组保护)中的话题。
目前,我的做法是硬编码一个需要排除的分类列表,然后遍历该列表,排除所有位于这些分类中的话题。但这并非理想方案。而且,置顶话题(如“欢迎来到新论坛”等)总是出现在列表顶部……我想我也可以把它们过滤掉……但整体感觉非常 hacky。
对于如何以更优雅的方式实现我的目标,有什么建议吗?
Stephen
(Stephen)
2
您可以回退到源(latest.rss/top.rss)吗?
pnoeric
(Eric)
3
这主意很巧妙,但我觉得这对我行不通,因为我的论坛是完全私密的。所以,如果我在没有有效 Discourse 会话的情况下尝试获取 RSS 源,它会被重定向到登录页面。
Stephen
(Stephen)
4
然后创建一个具有最低访问权限的虚拟用户,并将其视图作为后备方案?
Falco
(Falco)
5
创建一个没有特殊组隶属关系的新用户,并使用此非特权用户发起最新 API 请求。
pnoeric
(Eric)
6
嗯,这还不错。虽然还有点取巧,但我觉得比我现在的做法稍微好一些。保留一个“虚拟基础用户”,至少意味着我不必在主站代码中手动维护 Discourse 分类 ID 列表了。