gpt4 book ai didi

google-apps-script - 将字符串转换为 Web 安全的 Base64 格式

转载 作者:行者123 更新时间:2023-12-04 20:12:44 24 4
gpt4 key购买 nike

我正在测试如何使用带有 Google Apps 脚本的 Admin SDK Directory Service 和以下功能更新用户图片:

function updatePhoto(){
var fileId = 'XXXXXXXXXXXXXXXXXXX';
var b = DocsList.getFileById(fileId).getBlob();
var encoded = Utilities.base64Encode(b.getBytes());

encoded = encoded.replace(/\//g,'_').replace(/\+/g,'-').replace(/\=/g,'*');
AdminDirectory.Users.Photos.update({
"photoData": encoded },'harry.potter@abc.edu.hk');
}

但是,它并不总是有效。每当 base64 编码字符串中有填充时,它就会失败。引用谷歌的文档( https://developers.google.com/admin-sdk/directory/v1/reference/users/photos/update ),我对描述有点困惑。它说:
  • 等号 (=) 字符替换为星号 (*)。
  • 对于填充,使用句点 (.) 字符而不是
    RFC-4648 baseURL 定义,它使用等号 (=)
    填充。这样做是为了简化 URL 解析。

  • 实际应该怎么做? (=) 用于 Base64 中的填充。那么,我应该使用 (*) 还是 (.)?我确实尝试用 (.) 替换 (=) 但没有运气。

    任何人都可以帮忙吗?

    这太奇怪了。当我不替换 (=) 时它有效。
    function updatePhoto(){
    var fileId = 'XXXXXXXXXXXXXXXXXXX';
    var b = DocsList.getFileById(fileId).getBlob();
    var encoded = Utilities.base64Encode(b.getBytes());

    encoded = encoded.replace(/\//g,'_').replace(/\+/g,'-');
    AdminDirectory.Users.Photos.update({
    "photoData": encoded },'harry.potter@abc.edu.hk');

    }

    最佳答案

    API 要求您使用 URL 安全的 base64 编码。做完base64编码后,尝试替换/_+- .详情请见:

    https://developers.google.com/admin-sdk/directory/v1/reference/users/photos/update

    关于google-apps-script - 将字符串转换为 Web 安全的 Base64 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128789/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com