首页 > 解决方案 > Salesforce 流 API 握手被拒绝

问题描述

我在社区中使用流 api 和 cometD。它适用于授权用户,但仍然不适用于访客用户。例如,在匿名窗口中。每次我收到握手被拒绝时都会出现错误“401::Authentication invalid”。究竟是什么问题?但是,如果我将匿名窗口登录到 org,那么它就可以工作。

标签: apisalesforcestreaminghandshakecometd

解决方案


在 Salesforce 来宾用户的情况下,您可能会使用{!$Api.Session_ID}哪个会返回null

因为来宾用户没有访问 Salesforce 流 API 的会话 ID。

您需要以用户身份进行身份验证才能流式传输和订阅cometD的事件。

如果您想为来宾用户流式传输事件:

  • 您必须通过为其创建专用用户来花费平台许可证。
  • 在自定义设置中保存用户的信誉
  • 使用凭据生成访问令牌
  • 在为访客用户订阅平台事件时,使用访问令牌作为会话 ID。
  • 不要忘记删除除平台事件外的数据访问。

推荐阅读