salesforce-如何使API_会话_ID可用于javascript
我有一个javascript应用程序在主页组件中运行。它调用一个web服务,而web服务又调用SalesforceAPI。我想使用API_Session_ID变量保存重新登录。如何将其公开给在我的主页组件中运行的javascript?理想情况下,我希望使用apex在所有页面上呈现一小段脚本,使用API_Session_ID变量初始化javascript变量,但我不知道如何做到这一点salesforce-如何使API_会话_ID可用于javascript,salesforce,Salesforce,我有一个javascript应用程序在主页组件中运行。它调用一个web服务,而web服务又调用SalesforceAPI。我想使用API_Session_ID变量保存重新登录。如何将其公开给在我的主页组件中运行的javascript?理想情况下,我希望使用apex在所有页面上呈现一小段脚本,使用API_Session_ID变量初始化javascript变量,但我不知道如何做到这一点 注意-我不能使用VF,因为应用程序正在主页组件中运行。正常的解决方案(在iframe中作为VF运行)对我来说不可用
注意-我不能使用VF,因为应用程序正在主页组件中运行。正常的解决方案(在iframe中作为VF运行)对我来说不可用,因为我需要访问主页中的javascript对象,这在iframe中是做不到的。我也尝试过几次同样的事情。不幸的是,没有视觉力量我就没有成功 不过,几天前我确实找到了一条关于这个话题的讨论线索。 另外,听起来您知道这一点,但要使用VisualForce获取会话ID:
<script type="text/javascript">
var __sfdcSessionId = '{!GETSESSIONID()}';
</script>
var_uusfdcsessionid='{!GETSESSIONID()}';
好的,我就想出来了。会话cookie中有一个值'sid',这是需要稍加调整的。当你知道怎么做的时候就容易了!以下是链接:
有点过时了。我将cookie sid值和window.location.host传递给我的php web服务。使这些值起作用的php是:
$sidparts = explode("!", $feed->sid['value']);
$location = "https://".parse_url($feed->server['value'],
PHP_URL_HOST)."/services/Soap/u/20.0/".$sidparts[0];
$sessionId = "{$feed->sid['value']}";
嘿,马修-谢谢你的回复。事实上,我已经弄明白了,这可能对你有用:-一旦SA允许我…很好的发现,我会更完整地回答我自己的问题!抓取cookie是一种创造性的解决方案。VisualForce页面使用的force.com域上的sid cookie中的会话id对于API无效,因此必须使用{!GETSESSIONID()}。我试图在用户脚本中使用ajax库: