我正在创建一个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调用有效,但是我无法处理响应。有什么建议吗?
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
最好的问候,贝克港