我的getOAuthToken()是否可以正常工作,现在又没有原因吗?

时间:2020-02-06 10:23:06

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

var sourceFolderId = "15Kux2yyL_OWoZBwnYPbJtyrlp1zQjY3T";
var folder = DriveApp.getFolderById(sourceFolderId);
var token = ScriptApp.getOAuthToken()
var imageUrl = folder.getFilesByName(uid).next().getDownloadUrl() + "&access_token=" + 
ScriptApp.getOAuthToken();
var slide = Slides.Presentations.get(newTargetDocId).slides[0]

Logger.log(token) 
Logger.log(imageUrl)

我一直在使用上述代码从Google驱动器获取图像,并使用batchupdate将其放入Google幻灯片,但是auth令牌不再允许下载,我需要以某种方式刷新它吗?

URL转到正确的图像,并且该图像是正确的文件格式,但是代码返回 对slides.presentations.batchUpdate的API调用失败,错误为:Invalid requests[1].createImage: The provided image is in an unsupported format. (line 243, file "Code").

我知道该图像还可以,因为我已经使用过它。我知道网址是正确的,因为如果我切断authtoken,它将把我带到图片。最后的身份验证令牌不再允许我在其他浏览器上下载文件。

基于有关云端硬盘更改的评论的新代码

var sourceFolderId = "15Ku...............zQjY3T";
var folder = DriveApp.getFolderById(sourceFolderId);

var file = folder.getFilesByName(uid).next()

file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var imageUrl = "https://drive.google.com/uc?export=download&id=" + file.getId();

但是现在我在file.setSharing行上收到无效的参数错误

1 个答案:

答案 0 :(得分:1)

  var sourceFolderId = "15Ku...............zQjY3T";
  var folder = DriveApp.getFolderById(sourceFolderId);

  var file = folder.getFilesByName(uid).next()

  file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
  var imageUrl = "https://drive.google.com/uc?export=download&id=" + file.getId();

需要更改常规文件权限,以使其能够与Gsuite管理页面一起运行