0

我正在尝试使用 DropBox API 从 DropBox 获取缩略图并将它们显示在 Salesforce 的 Lightning Web 组件上,但不能这样做,因为在响应 Apex 接收正文中带有黑色菱形和问号。

我使用标准的 HTTP 方法来调用

    HttpRequest req = new HttpRequest();
        req.setHeader('Authorization', 'Bearer sl.validToken');
        req.setHeader('Dropbox-API-Arg', '{"resource": {".tag": "path","path": "/folderName/pictureName.jpg"},"format": "jpeg","size": "w64h64","mode": "strict"}');
        req.setHeader('Content-Type', 'text/plain; charset=utf-8');
req.setEndpoint('https://content.dropboxapi.com/2/files/get_thumbnail_v2');
        req.setMethod('POST');
        Http httpreq = new Http();
        HttpResponse res = httpreq.send(req);

这是我在 Apex 的响应正文中收到的内容。我在邮递员中也有同样的反应。 https://i.stack.imgur.com/90yjI.png

这就是我在 DropBox 资源管理器中具有相同值和标题(JSON)的内容 https://i.stack.imgur.com/ytDxv.png

文件范围为所有人阅读。SF 远程站点设置和 CSP 受信任站点已设置。

简短更新:我已经能够从标头获取 JSON。我确实使用了那段代码:

List<String> headers = new List<String>(res.getHeaderKeys());
        for(String key : headers){
            System.debug('key ->>> '+key+' = '+res.getHeader(key));
        }
        String jsonString = res.getHeader('Dropbox-Api-Result');
        System.debug('->>>ddd '+jsonString);

但是仍然不明白如何在 LWC 中将其用作缩略图。

预先感谢您的帮助。

4

1 回答 1

0

/2/files/get_thumbnail_v2 Dropbox API 端点“内容下载”样式的端点,这意味着“响应正文包含文件内容,因此结果将在Dropbox-API-Result响应标头中显示为 JSON”。因此,您收到的难以辨认的值是缩略图数据本身的实际字节。您当前正尝试将其显示为文本,但您需要将其保存并显示为图像以查看缩略图。有关如何显示图像的信息,请参阅您平台的文档。

作为参考,Dropbox API v2 Explorer是在了解不同端点格式的基础上构建的,因此在这种情况下,它会显示来自Dropbox-API-Result响应标头的元数据,并仅提供文件数据,在这种情况下是缩略图数据,作为通过“下载”按钮。

于 2021-09-30T15:12:53.303 回答