【问题标题】:How to access Rich Text Field Image outside SalesForce?如何在 SalesForce 之外访问富文本字段图像?
【发布时间】:2018-12-11 02:10:54
【问题描述】:

我使用SalesForce 对象来存储用户信息,它也包括个人资料图像。我可以通过发送 Base64 字符串和<img> 标签在富文本字段中插入图像。图像被存储并显示在 SalesForce 页面中。没问题。

我还可以在 Rest API (NodeJS) 的帮助下将图像 URL 获取到客户端(移动应用程序)。这里的问题是,只有在记录了 SalesForce 帐户时才能访问图像 URL(浏览器) in. 如果没有,它会进入 SalesForce 登录页面(当我尝试使用其他浏览器时)。

我想要的是在我的移动应用程序中显示图像,该应用程序没有 SalesForce 登录访问权限。但如果需要,我可以向客户端提供足够的信息。

我的图片网址是这样的,

https://c.ap5.content.force.com/servlet/rtaImage?eid=a037F00000YSybT&feoid=00N7F00000Pupl6&refid=0EM7F000000lIN0

另外,当我成功登录到 SalesForce 时,我的服务器端(节点)中有一些安全信息。顺便说一句,我正在使用 node-salesforce 包来建立 SalesForce 连接。

1) 组织 ID

2) 实例网址

3) 用户 ID

4) 访问令牌

从一周前开始,我就一直被这个问题困扰,而且我的截止日期已经快用完了。 请帮忙!!!

谢谢!

【问题讨论】:

  • 你找到答案了吗?我正在寻找类似的解决方案。
  • 抱歉回复晚了。是的,我能够找到解决方案。我得到了一位 SF 专家的支持。有一种在 SF 中创建自定义域并将其映射到 url 的方法。 SF生成的url不登陆外部是不可用的。但是使用自定义域将使其可用。我完成了我的工作。
  • 嗨 JefinOJ。您能否详细说明您是如何做到的?

标签: node.js oauth salesforce sf


【解决方案1】:

当我从我的 api 返回它们时,我最终重写了富文本中的 url。在某种程度上,他们通过这个 SF API 端点与集成用户引用我用作图像代理的 api:https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/resources_sobject_rich_text_image_retrieve.htm

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());
}

远非理想,但它有效!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 2022-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多