谷歌脚本自动OAuth用于照片库rest api调用



我正在尝试创建一个谷歌脚本,该脚本使用photolibrary.googleapis.com rest api自动将图像添加到谷歌在线相册中。

第一步是使用上传功能上传文件。我已经尝试使用脚本的OAuthToken 验证请求

"Authorization": "Bearer " +  ScriptApp.getOAuthToken() 

但我得到以下错误响应:

{"code":16,"message":"未定义身份验证会话。"}

有没有一种方法可以用运行谷歌脚本的用户的凭据来验证谷歌脚本rest请求,这样就可以自动访问photolibrary.googleapis.com,前提是库的所有者与运行脚本的所有者相同?

function photoAPI_upload(blob) {
var api = "https://photoslibrary.googleapis.com/v1/uploads";
var headers = { 
"Authorization": "Bearer " +  ScriptApp.getOAuthToken(),  
"contentType": "application/octet-stream",
'X-Goog-Upload-File-Name': blob,
'X-Goog-Upload-Protocol': "raw",
};
var options = {
method: "post",
headers: headers,
payload: blob
}
var response = UrlFetchApp.fetch(api, options);
Logger.log('upload-token' + response.getContentText());
return response.getContentText();
}

我在这个线程中找到了响应:

[如何使用谷歌照片API方法:mediaItems.search在谷歌应用程序脚本中为电子表格

基本上可以归结为:

  1. 需要Oauth作用域。将以下行添加到appscript.json(查看>显示项目清单("oauthScopes":[https://www.googleapis.com/auth/spreadsheets.currentonly","https://www.googleapis.com/auth/photoslibrary","https://www.googleapis.com/auth/photoslibrary.readonly","https://www.googleapis.com/auth/script.external_request"]

  2. 还需要一个启用了适当照片API的标准GCP项目。https://developers.google.com/apps-script/guides/cloud-platform-projects

最新更新