javascript - GoogleJsonResponseException:对 directory.users.photos.update 的 API 调用失败并出现错误:输入无效:photoData 设置用户个人资料图片时
问题描述
我正在尝试创建一个附加到电子表格的谷歌应用脚本,该电子表格可以设置谷歌用户的个人资料图片。根据文档,这应该有效:
var response = UrlFetchApp.fetch(url);
var photoBlob = response.getBlob();
var data = Utilities.base64EncodeWebSafe(photoBlob.getBytes());
AdminDirectory.Users.Photos.update({photoData: data}, this.email);
但是,这会导致异常:
GoogleJsonResponseException: API call to directory.users.photos.update failed with error: Invalid Input: photoData
运行此脚本的用户有权编辑个人资料图片
解决方案
您的网址一定有问题,以下对我有用:
function myFunction() {
var url = "https://www.telegraph.co.uk/content/dam/Pets/spark/royal-canin/tabby-kitten-small.jpg"
var response = UrlFetchApp.fetch(url);
var photoBlob = response.getBlob();
var data = Utilities.base64EncodeWebSafe(photoBlob.getBytes());
var email = Session.getEffectiveUser().getEmail()
AdminDirectory.Users.Photos.update({photoData: data}, /*this.*/email);
}
或者,您也可以使用驱动器中的图像,如下所示:
function myFunction() {
var url = "https://www.telegraph.co.uk/content/dam/Pets/spark/royal-canin/tabby-kitten-small.jpg"
var response = DriveApp.getFileById("1f8EFG6G5zNd6by_fNEecSh2D1My_p-_p")
var photoBlob = response.getBlob();
var data = Utilities.base64EncodeWebSafe(photoBlob.getBytes());
var email = Session.getEffectiveUser().getEmail()
AdminDirectory.Users.Photos.update({photoData: data}, /*this.*/email);
}
推荐阅读
- python - 我如何使用 GraphSON v2 而不是 v3?
- javafx - CellEditEvent 编辑相邻单元格
- header - 如何在 Grav CMS 中添加页眉和页脚
- r - Rshiny:如何根据从 UI 中选择的值创建功能
- python - 如何创建具有两种不同类型周的时间表?Python
- c++ - c++ pathfinder - 带有指针的对象向量
- javascript - Angular 应用程序构建
- typescript - 类型保护函数的泛型
- python - python星号语法错误。不知道出了什么问题
- node.js - 在 Sequelize 和 postgres 中插入和获取 JSON 数据