use*_*013 2 google-apps-script google-admin-sdk
我正在测试如何使用带有Google Apps脚本的Admin SDK目录服务更新用户图片,具有以下功能:
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');
}
Run Code Online (Sandbox Code Playgroud)
但是,它并不总是有效.只要base64编码的字符串中有填充,它就会失败.参考Google的文档(https://developers.google.com/admin-sdk/directory/v1/reference/users/photos/update),我对这些说明感到有些困惑.它说:
应该做什么?(=)用于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');
Run Code Online (Sandbox Code Playgroud)
}
API要求您使用URL安全的base64编码.做base64编码后,尝试更换/用_和+用-.详细信息:
https://developers.google.com/admin-sdk/directory/v1/reference/users/photos/update
| 归档时间: |
|
| 查看次数: |
9398 次 |
| 最近记录: |