我正在使用SalesForce
对象存储用户信息,它也包含个人资料图像。通过发送Base64字符串和<img>
标签,我可以在Rich Text Field中插入图像。图像将存储并显示在SalesForce页面中。没问题。
我还可以在Rest API(NodeJS)的帮助下将图像URL获取到客户端(移动应用程序)。这里的问题是,只有登录了SalesForce帐户,图像URL才可以访问(浏览器)。进入。否则进入SalesForce登录页面(当我尝试使用其他浏览器时)。
我想要在没有SalesForce登录访问权限的移动应用程序中显示图像。但是如果需要,我可以向客户端提供足够的信息。
我的图片网址看起来像这样,
此外,我在服务器端(节点)中有一些安全信息,这些信息是我成功登录SalesForce时获得的。顺便说一句,我正在使用 node-salesforce 包建立SalesForce连接。
1)OrganizationId
2)instanceUrl
3)用户ID
4)accessToken
从一个星期前开始,我就一直困扰着这个问题,而我的期限已满。 请帮助!
谢谢!
答案 0 :(得分:0)
当我从api返回时,我最终以实时格式重写了富文本格式的URL。在某种程度上,它们可以通过集成用户https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_rich_text_image_retrieve.htm
引用我的api,我通过该SF API端点用作图像代理。private void rewriteImageUrls(RichTextRecord richTextRecord) {
Document doc = Jsoup.parse(richTextRecord.getBody());
doc.select("img").forEach(imgElement -> {
try {
URL originalUrl = new URL(imgElement.absUrl("src"));
String newUrl = appEnv.getBackendUrl() + "/api/v1/rich_text_records/" + richTextRecord.getSfid() + "/image?refid="+ UrlUtils.getQueryMap(originalUrl.getQuery()).get("refid");
imgElement.attr("src", newUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
}
});
richTextRecord.setBody(doc.outerHtml());
}
远离理想,但它可以工作!