[google-drive-api]如何处理谷歌API的get()alt =媒体响应

时间:2016-06-10 10:20:33

标签: javascript angularjs api google-drive-api

我一直在尝试在我的angularjs应用中实现驱动API。我想下载一个pdf文件,所以我使用以下代码。

$scope.getFile = function(id) {
  console.log(id);
  //console.log(fileId);
  if (id != null) {
    var request = gapi.client.drive.files.get({
      'fileId': id,
      'alt': 'media'
    });
    request.execute(function(resp) {
      console.log('response: ' + resp);
    });
  }
}

但是我的console.log打印了“false'”。我不知道为什么它真的让我疯了我检查了inspect元素中的网络选项卡,发现响应正确为base64字符串。

screenshot of response

我还调用atob(resp),表示要解码的文本未正确编码。但我使用了一个在线base64解码器,它完美地工作,pdf正在打开。请帮我堵住这里

1 个答案:

答案 0 :(得分:1)

只需使用then代替execute

var request = gapi.client.drive.files.get({
    'fileId': id,
    'alt': 'media'
});
request.then(function(resp) {
    console.log('response: ' + resp);
});