Javascript Sharepoint Framework:如何创建<;img>;包含MSGraph photo/$value响应BLOB的标记
我正在创建一个Sharepoint应用程序(使用Shrepoint框架),但无法检索调用MSGraph“/me/photo/$value”api时返回的Phto BLOB。我不知道如何将BLOB转换为Base64字符串。我已经做了很多尝试,我正在写一篇文章来解释我试图实现的目标:Javascript Sharepoint Framework:如何创建<;img>;包含MSGraph photo/$value响应BLOB的标记,javascript,sharepoint-online,spfx,Javascript,Sharepoint Online,Spfx,我正在创建一个Sharepoint应用程序(使用Shrepoint框架),但无法检索调用MSGraph“/me/photo/$value”api时返回的Phto BLOB。我不知道如何将BLOB转换为Base64字符串。我已经做了很多尝试,我正在写一篇文章来解释我试图实现的目标: this.context.msGraphClientFactory .getClient() 。然后((客户端:MSGraphClient):void=>{ client.api('/me/photo/$value')
this.context.msGraphClientFactory
.getClient()
。然后((客户端:MSGraphClient):void=>{
client.api('/me/photo/$value').get((错误,响应:any,rawResponse?:any)=>{
const blobUrl=window.URL.createObjectURL(rawResponse.body);
document.getElementById(“myPhoto”).setAttribute(“src”,blobUrl);
});
});
此代码失败,因为creteObjectURL已被弃用。
MSGraph调用正常,但我无法处理响应。有什么建议吗?接受blob作为其参数。您可以得到如下所示的blob响应:
client.api('/me/photo/$value').responseType('blob').
bloburl将类似于:
blob:https://xxxx-app34cc3db2636944a5b0b3abea9a6ae5b9.sharepoint.com/e007d253-f911-4722-86a8-ecdd77864696
您还可以通过以下方式将blob转换为base64:
此外,您还可以使用pnpjs访问ms graph,它可以直接返回blob数据:
致以最良好的祝愿,
江贝克