我正在尝试创建一个Google脚本,该脚本使用photoslibrary.googleapis.com rest api自动将图像添加到google在线相册中。
第一步涉及使用uploads函数上传文件。我尝试使用脚本的OAuthToken对请求进行身份验证
"Authorization": "Bearer " + ScriptApp.getOAuthToken()
但是我得到以下错误响应:
{“代码”:16,“消息”:“未定义身份验证会话。” }
是否有一种方法可以使用运行它的用户的凭据对Google脚本剩余请求进行身份验证,因此,只要画廊的所有者与正在运行的画廊的所有者相同,就可以自动访问photoslibrary.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();
}
我在此线程中找到了响应:
[How to use Google Photos API Method: mediaItems.search in Google apps script for a spreadsheet
基本上可以归结为:
需要Oauth范围。将以下行添加到appsscript.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”]
还需要启用适当的Photo API的标准GCP项目。https://developers.google.com/apps-script/guides/cloud-platform-projects