Sharepoint框架:如何创建一个包含MSGraph照片/ $值响应BLOB的标记

问题描述 投票:0回答:1

我正在创建一个Sharepoint应用程序(使用Shrepoint Framework),并且在调用MSGraph“ / me / photo / $ value” api时无法检索返回的Phto BLOB。我不知道如何将BLOB转换为Base64字符串。我做了很多尝试,我正在写一个解释我要完成的事情:

this.context.msGraphClientFactory .getClient() .then((client: MSGraphClient): void => { client.api('/me/photo/$value').get((error, response: any, rawResponse?: any) => { const blobUrl = window.URL.createObjectURL(rawResponse.body); document.getElementById("myPhoto").setAttribute("src", blobUrl); }); });

此代码失败,因为creteObjectURL已被弃用。MSGraph调用有效,但是我无法处理响应。有什么建议吗?

javascript sharepoint-online spfx
1个回答
0
投票

createObjectURL接受blob作为其参数。您可以得到如下的blob响应:

client.api('/me/photo/$value').responseType('blob').

Bloburl将像:

blob:https://xxxx-app34cc3db2636944a5b0b3abea9a6ae5b9.sharepoint.com/e007d253-f911-4722-86a8-ecdd77864696

此外,您还可以通过FileReader将blob转换为base64:Convert blob to base64

此外,您还可以使用pnpjs来访问ms图,它可以直接返回blob数据:Current User

最好的问候,贝克港

© www.soinside.com 2019 - 2024. All rights reserved.