Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌应用程序脚本UrlFetchApp错误“;“未授予访问权限或访问权限已过期”;_Javascript_Google Apps Script_Google Drive Api_Google App Maker - Fatal编程技术网

Javascript 谷歌应用程序脚本UrlFetchApp错误“;“未授予访问权限或访问权限已过期”;

Javascript 谷歌应用程序脚本UrlFetchApp错误“;“未授予访问权限或访问权限已过期”;,javascript,google-apps-script,google-drive-api,google-app-maker,Javascript,Google Apps Script,Google Drive Api,Google App Maker,我已经创建了一个服务帐户来访问google drive中域用户的文件,以更改共享设置 以下是应用程序脚本代码: ` if(service.hasAccess){ var fileId = activity.events[0].parameters[6].value; var url = 'https://www.googleapis.com/drive/v2/files/'+fileId+'/permissions' var body = {

我已经创建了一个服务帐户来访问google drive中域用户的文件,以更改共享设置

以下是应用程序脚本代码:

`  if(service.hasAccess){

        var fileId = activity.events[0].parameters[6].value;
        var url = 'https://www.googleapis.com/drive/v2/files/'+fileId+'/permissions'
        var body = {
          'value': 'domain.com',
          'type': 'domain.com',
          'role': 'writer'
        };
                Logger.log("done");
         var response = UrlFetchApp.fetch(url, {
          method: 'POST',
          resource: body,
          headers: {
            Authorization: 'Bearer ' + service.getAccessToken()
          }
        });`

我可以在日志对话框中看到“完成”文本。因此,我认为该服务可以访问用户驱动器。但仍然会产生同样的错误。我是不是遗漏了什么?非常感谢您的帮助。

据我所知,App Maker为您提供了一个无需直接呼叫即可连接API的机会。您可以打开“设置”页面,滚动至底部并添加高级服务驱动器API

然后您将能够使用应用程序脚本驱动服务:

有关连接到App Maker的驱动器API的详细信息,您可以在此处找到:


据我所知,App Maker为您提供了一个无需直接调用即可连接API的机会。您可以打开“设置”页面,滚动至底部并添加高级服务驱动器API

然后您将能够使用应用程序脚本驱动服务:

有关连接到App Maker的驱动器API的详细信息,您可以在此处找到:


您的
Logger.log(“完成”)
语句在URL获取之前,所以它无论如何都会记录下来。您可以通过内置程序执行大多数驱动器文件共享操作,而无需使用Google Drive API。@Diego但我正在访问其他用户的Google Drive文件。所以我想我应该使用一个服务帐户。你的
Logger.log(“done”)
语句在URL获取之前,所以它无论如何都会记录下来。你可以通过内置程序执行大多数驱动器文件共享操作,而不必使用Google Drive API。@Diego但我正在访问其他用户的Google驱动器文件。所以我想我应该使用服务帐户。我已经尝试过这种方法。但它引发了“拒绝访问”错误。我已经尝试解决这个问题三天了,但运气不好。你在谷歌云平台上启用了这个API吗?在你注意到后,我在谷歌云平台上启用了API。但我仍然有同样的错误…我已经尝试过这种方法。但它引发了“拒绝访问”错误。我已经尝试解决这个问题三天了,但运气不好。你在谷歌云平台上启用了这个API吗?在你注意到后,我在谷歌云平台上启用了API。但我还是有同样的错误。。。