用于照相馆休息api调用的Google脚本自动OAuth

问题描述 投票:0回答:1

我正在尝试创建一个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();
    }
rest google-apps-script oauth photo-gallery
1个回答
0
投票

我在此线程中找到了响应:

[How to use Google Photos API Method: mediaItems.search in Google apps script for a spreadsheet

基本上可以归结为:

  1. 需要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”]

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

© www.soinside.com 2019 - 2024. All rights reserved.