【问题标题】:files absolute path after upload in Google drive picker在 Google 驱动器选择器中上传后的文件绝对路径
【发布时间】:2014-11-10 04:16:01
【问题描述】:

我正在尝试创建一个具有图像上传功能的网络应用程序,它将图像上传到用户的谷歌驱动器并通过使用谷歌驱动器选择器返回上传图像的绝对路径

我的生成选择器功能

var picker=new google.picker.PickerBuilder()
            .addView(new google.picker.DocsUploadView())
            .addView(new google.picker.DocsView())
            .setOAuthToken(oauthToken)
            .setDeveloperKey("[MY_API]")
            .setCallback(imageReceived)
            .build();
            picker.setVisible(true);

回调函数

function imageReceived(data)
        {
            if (data.action == google.picker.Action.PICKED) {

            console.log(data.docs[0].url);
        }

我能够生成选择器并且文件上传也可以工作

但是在我的上传回调函数中,url 是以这种形式返回的

https://docs.google.com/file/d/[something]/edit?usp=drive_web

这个 url 不能用于 img 标签,因为它不是上传图片的绝对路径 那么我应该如何获得绝对路径呢?

【问题讨论】:

    标签: javascript google-drive-api


    【解决方案1】:

    查看文档 (https://developers.google.com/picker/docs/results),它指出您应该改用“embed_URL”。

    您可以轻松调试和检查响应。我在我的一个项目中集成了谷歌选择器,我能够获得图像的完整网址。

    编辑: 我检查了我的代码,实际上我不得不使用 google file api 来获取链接。那就是对https://www.googleapis.com/drive/v2/files/{id}进行ajax调用,传递文件id。您可以在 img 标记中使用的绝对 url 在 'webContentLink' 属性中。

    请注意,在进行 ajax 调用时,您必须在请求标头中转发访问令牌:

    var token = gapi.auth.getToken();
    $.ajax({....,
       beforeSend: function(n) {
                    n.setRequestHeader("Authorization", "Bearer " + token.access_token)
                }}),...
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      • 2011-10-01
      相关资源
      最近更新 更多