Google 驱动器 api 错误 gapi.client.request

Google Drive api Error gapi.client.request

大家好,我正在使用 Google Picker API 但是当我看到这段代码时

var request1 =  gapi.client.request({
                        'path': '/drive/v3/files/' + fileID + '/permissions',
                        'method': 'POST',
                        'headers': {
                            'Content-Type': 'application/json',
                            'Authorization': 'Bearer ' + oauthToken
                        },
                        'body': {
                            'role': role,
                            'type': type
                        }
                    });
                    request1.execute(function (resp) {
                        console.log(resp);
                    });

我在 gapi.client.request 上不断收到错误消息,如下图所示。 我不知道我在这里做错了什么我也在 google 中搜索了很多。并且此代码也与我在 google 中找到的代码相同,我需要在我的网站 运行 中使用此代码,但我一直收到此错误。

任何想法都会谢谢你。

加载库需要一些时间才能完全加载。因此,当您尝试使用 gapi.client.request 时,gapi.client 仍未定义。

确保在继续之前加载库。

样本:

<body>
  Tester2
  <script>
    googleApiClientReady = function () {
      var request1 =  gapi.client.request({
        'path': '/drive/v3/files/' + fileID + '/permissions',
        'method': 'POST',
        'headers': {
          'Content-Type': 'application/json',           
          'Authorization': 'Bearer ' + oauthToken
        },
        'body': {
          'role': role,
          'type': type
        }
      });
      request1.execute(function (resp) {
        console.log(resp);
      });
    }
  </script>
  <script src="https://apis.google.com/js/client.js?onload=googleApiClientReady"></script>
</body>

输出:

错误现在转到未定义的 fileID 而不是未定义的 gapi.client,推断后者现在已定义。

注:

  • 如果要更新驱动器中的文件,方法应该是 PATCH 而不是 POST。 (参考:PATCH vs POST