javascript - 在 Visualforce 页面中显示 Chatter 文件的 PDF

标签 javascript api salesforce salesforce-chatter

我将 pdf 作为聊天文件存储在我们的 SF 组织中,该组织运行良好,但向用户显示这些 PDF 非常具有挑战性,尤其是在移动设备(例如 ipad)上 我找到了一些优秀的 javascript PDF 查看器,它们在 iPad 上表现得相当好。 挑战在于将 pdf 文件交付给这些查看者。

其中大多数需要本地 pdf 文件才能查看,但有些像 google view 会获取 pdf 的 url,例如 https://docs.google.com/viewer?url=https://urltopdf

可通过 chatter GET 获取 pdf 文件,如下所示: https://cs2.salesforce.com/services/data/v35.0/chatter/files/ {docId}/内容?版本号=1 问题当然是我需要传入身份验证 header 。如果我只是将该 url 传递给 google 查看器,它会因为身份验证而失败,因为它没有传入 Auth header 。

我尝试了一些事情..

  • 在 Salesforce 中构建了 Google 查看器调用的代理 API,该 API 调用 Chatter,然后将文件返回到 Google 文档 View 问题:自定义 SF API 有 6mb 限制,这意味着如果 pdf 大于 6mb,它将无法工作!

  • 在 SF 外部构建了一个代理 API(以绕过 6mb 限制),包括一些有趣的方法来保留身份验证 问题:跳数太多,Google 查看器无法及时返回数据...它调用外部代理 API,然后调用 Chatter API,后者必须将 pdf 数据返回给外部代理 API,然后返回 Salesforce(我知道这很荒谬)。

所以我被困住了...... 我认为从 Spring 13 开始,Chatter API 就可以访问,无需从 VF 页面上的 Javascript 进行任何特殊身份验证。 真的吗? 当从 VF 页面上的 javascript 调用时,这个 url 是否可以在没有任何 auth header 的情况下工作? https://cs2.salesforce.com/services/data/v35.0/chatter/files/ {docId}/内容?版本号=1 它似乎对我不起作用,并且在通过谷歌查看器时绝对不起作用。

真的很感激任何关于如何做到这一点的建议吗? 谢谢

最佳答案

请不要恨我,我正在努力获得一些代表。

您可以在VF页面通过ajax请求查询docid的静态资源并加载文件。

之后,需要使用添加到 base64 的 data:image/png;base64 将其添加到 Canvas 。您还可以向 Canvas 添加下载标签,以便下载或在另一个窗口中打开它,为用户提供浏览器 pdf 资源管理器。

如果您使用 Canvas ,调整大小时请小心 Safari。如果你得到一个很长的数字,它就会在 Canvas 上乱七八糟。我在那个上花了几个小时。

希望对您有所帮助。

关于javascript - 在 Visualforce 页面中显示 Chatter 文件的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40596332/

相关文章:

javascript - n 是 JSON 中的有效起始字符吗?

php - 如何使用基于 3 个选择框的 javascript 创建可过滤列表

python - 使用 Imgur API 进行身份验证

c# - Coinspot REST API - C#

javascript - 用户单击复选框后保持上下文菜单打开?

javascript - 浏览器支持模块导入,我该如何使用它?

ios - 带有 UISearchBar 的 MapKit

c# - 具有嵌入式功能的 Linq

Salesforce:如何使用顶点代码或公式获取日期字段中的周数(检查第 53 周)

api - salesforce rest api INVALID_SESSION_ID 错误