我想将 Salesforce VisualForce 页面变成我公司网站的小部件。我想使用服务器端代码和服务帐户访问小部件。我将在我的网页中缓存、设置样式并输出小部件 html。我知道我可以使用服务器端代码和几个 API 调用来重现小部件,但我喜欢能够在 Salesforce 中管理小部件并让小部件可在 Salesforce 中的其他地方重用的想法。
在这种情况下,小部件将报告我们在 Salesforce 中跟踪的竞赛中的当前领导者。我计划将这种方法重用于其他“小型报告小部件”。这是一个非常有用的模式。我敢肯定有人已经优雅地解决了它。到目前为止,我的搜索都是空的。
我试图避免使用站点,因为访问我们公司网站的用户在 Salesforce 中没有用户帐户(现在我正在考虑一个允许匿名访问的站点)。
我的第一次尝试看起来像这样(受 SSO 到自助服务门户的启发):
var ws = new sfapi.SforceService();
var lr = ws.login(Secrets.salesforce_user_name, Secrets.salesforce_password);
string url = "https://na6.salesforce.com/apex/mywidget?sessionId=" + lr.sessionId;
我也尝试过 ?sid 和 ?csssid ,但是像这样的 URL 只是让我跳到 Salesforce 登录页面:
https://na6.salesforce.com/apex/mywidget?sessionId=00D3000000myorg!my-session-id-from-logging-in-with-the-api-8_i2fX_9wnYdwnwatGVuX6jGjmVmnv50j78yfGF1aKHdoDFtIx_J9
我可能会使用标准的屏幕抓取技术使用用户名和密码发布到标准的 Salesforce 登录表单,然后拉出 /apex/mywidget 页面。但这感觉笨拙且不受支持。
现在我正在考虑创建一个可公开访问的新站点,以公开我的小部件。至少我可以放心地筛选那个页面。
任何帮助表示赞赏。我现在将使用匿名站点方法。