在Salesforce中,如何从批处理Apex调用中检索有效的SessionId?

在Salesforce中,如何从批处理Apex调用中检索有效的SessionId?,session,service,salesforce,apex,Session,Service,Salesforce,Apex,我有一个场景,我正在监视Salesforce中的一些数据,这些数据只能通过屏幕抓取来获取(eeek,我知道,我知道……但这确实是获取我所需数据的唯一方法)。因此,我需要能够通过调用同一Salesforce组织中存在的自定义REST服务来获取HTML页面的内容。这一切都是为了绕过Batch Apex的限制,即“不能在批处理作业中使用getContent和getContentAsPDF PageReference方法” 我看到了一些建议,但最后菲尔表示他有一个解决方案,但没有详细说明。我看到的所有这

我有一个场景,我正在监视Salesforce中的一些数据,这些数据只能通过屏幕抓取来获取(eeek,我知道,我知道……但这确实是获取我所需数据的唯一方法)。因此,我需要能够通过调用同一Salesforce组织中存在的自定义REST服务来获取HTML页面的内容。这一切都是为了绕过Batch Apex的限制,即“不能在批处理作业中使用getContent和getContentAsPDF PageReference方法”

我看到了一些建议,但最后菲尔表示他有一个解决方案,但没有详细说明。我看到的所有这些都要求您设置用户名和密码,我不想这样做,因为这意味着将其存储在某个位置,然后每次需要更改时都必须进行更新(这将是定期的)。这样做会使我的目标落空

我在这里的思想交流中也提到了这一点

任何好主意都将不胜感激

谢谢
Jimski

如果不想存储用户名和密码,可以使用OAuth建立会话。那么你只需要存储刷新令牌。嗨,丹尼尔,谢谢你的回复。不幸的是,我的软件包安装在多个组织中,每个组织都有不同的用户帐户和连接的应用程序,因此我需要存储用户名、密码、密码等。。。每个组织(100+)中的自定义设置。任何时候更改密码,我都需要更新自定义设置,这不是很容易扩展的。