我正在使用商业试用版,并参考了这篇文章。LWC 被用作 Discourse 的包装器。由于 LWC 不允许在 HTML 标记中添加 和 标签,我从 myDiscourseAcc.discourse.group/javascripts/embed.js 下载了 JavaScript 库,将其保存到我的 Salesforce 组织中作为静态资源,并加载到 LWC 中。
iframe 可以显示,但它总是显示登录页面和“登录以回复”按钮。但我需要显示论坛及其所有功能——目前无法实现。
- 在 LWC 中,我为 window.DiscourseEmbed 指定了 discourseUrl、discourseEmbedUrl 和 fullApp(设置为 true)。
- 已在管理员设置 → 嵌入 → 主机中添加了 Salesforce 社区站点。已启用完整应用模式。
- Discourse Connect 工作正常,相关设置也已配置。我得出这一结论是因为我可以通过 SF 社区访问 Discourse,并且当我登录时,可以使用我的社区用户自动登录到 Discourse。
- 在 Salesforce 组织中,Discourse 已被添加到受信任的 URL 中。
- 登录社区时,SF 社区日志和 Discourse 日志中均未出现任何错误。
- 加载社区时,我可以设置重定向到 Discourse 再返回,以便通过 URL 获取 SSO 和 SIG。
- 当我点击自定义按钮或嵌入的 Discourse iframe 中的“登录以回复”按钮时,我可以在单独的窗口或标签页中打开 Discourse。
- Salesforce 社区和我的 Discourse 实例位于不同的域名上。
尽管如此,登录页面仍然在嵌入的 iframe 中打开。我不太确定,但问题可能与 Cookie 有关。