【问题标题】:GoogleJsonResponseException: API call to directory.users.photos.update failed with error: Invalid Input: photoData When setting user profile pictureGoogleJsonResponseException:对 directory.users.photos.update 的 API 调用失败并出现错误:输入无效:photoData 设置用户个人资料图片时
【发布时间】:2021-05-15 00:53:50
【问题描述】:

我正在尝试创建一个附加到电子表格的谷歌应用脚​​本,该电子表格可以设置谷歌用户的个人资料图片。根据文档,这应该可行:

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

运行此脚本的用户有权编辑头像

【问题讨论】:

  • 您是否确认您正确检索了 blob?请先尝试保存在云端硬盘中的照片。

标签: javascript google-apps-script google-api


【解决方案1】:

你的网址一定有问题,以下对我有用:

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);
}

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    • 2010-12-11
    相关资源
    最近更新 更多