我试图使用DropBox应用程序接口从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的响应体中收到的内容。我在Postman中也有同样的反应。https://i.stack.imgur.com/90yjI.png
这是我在DropBox资源管理器中具有相同值和头文件(JSON) https://i.stack.imgur.com/ytDxv.png的内容。
文件范围对每个人都是读取的。已设置SF远程站点设置和CSP受信任的站点。
简短更新:我已经能够从header中获取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中使用它作为缩略图。
提前感谢您的帮助。
发布于 2021-09-30 15:12:53
The /2/files/get_thumbnail_v2 Dropbox API endpoint是一个"content-download" style端点,这意味着“响应主体包含文件内容,因此结果将在Dropbox-API-Result响应头中显示为JSON”。因此,您收到的难以辨认的值是缩略图数据本身的实际字节数。您当前正尝试将其显示为文本,但您需要将其保存并显示为图像才能查看缩略图。有关如何显示图像的信息,请参阅您的平台文档。
作为参考,the Dropbox API v2 Explorer是使用不同端点格式的知识构建的,因此在本例中,它显示来自Dropbox-API-Result响应头的元数据,并且只提供文件数据,在本例中是缩略图数据,通过" download“按钮下载。
https://stackoverflow.com/questions/69388125
复制相似问题