我正在 NodeJS 中使用 Google Admin SDK 来获取用户列表。我似乎无法以公共(public)方式使用缩略图,因此我获取了他们的使用 ID 并调用 users.photos.get (NodeJS SDK),作为返回,我获得了网络安全的 Base64 照片数据和 mime 类型。/p>
我正在尝试弄清楚如何让我的图像真正显示出来。我将转到 img 标签并通过 JQuery 将 SRC 属性设置为由以下格式组成的内联 CSS:
'data:' + photo.mimeType + ';base64,' + photo.photoData
所以结果如下:data:image/gif;base64, longAssString。
问题是图像总是损坏。我不知道我是否做错了什么,或者谷歌是否以某种方式给了我一些错误的数据,或者我需要对字符串进行某种额外的正则表达式处理,因为它是某种“网络安全”格式?
也许我的图像已损坏,但在管理用户(他们是测试用户)时,它们在 Google 管理信息中心中都显示良好。我尝试使用 Google Closure Library 的解码功能,但它实际上将其解码为奇怪的字符。
最终我只想从 Google 管理目录中获取用户的照片,以便将其导入到另一个系统中!
最佳答案
上传照片时(我经常这样做),会完成一些额外的网络安全编码(除了 base64Encode 之外)。该编码(上传时)是将正斜杠 /
转换为下划线 _
,将加号 +
转换为减号 -
。在代码中,那就是:
encodedPhoto = encodedPhoto.replace(/\//g,'_').replace(/\+/g,'-');
这意味着下载时,您应该执行相反的操作:
encodedPhoto = photo.photoData.replace(/_/g,'/').replace(/-/g,'+');
关于javascript - 从 Google Admin SDK 检索并显示 Base64 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41126152/