Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 在Google drive picker中上载后的文件绝对路径_Javascript_Google Drive Api - Fatal编程技术网

Javascript 在Google drive picker中上载后的文件绝对路径

Javascript 在Google drive picker中上载后的文件绝对路径,javascript,google-drive-api,Javascript,Google Drive Api,我正在尝试创建一个具有图像上传功能的web应用程序,它将图像上传到用户的google drive,并使用google drive picker返回上传图像的绝对路径 我的生成选择器函数 var picker=new google.picker.PickerBuilder() .addView(new google.picker.DocsUploadView()) .addView(new google.picker.DocsView())

我正在尝试创建一个具有图像上传功能的web应用程序,它将图像上传到用户的google drive,并使用google drive picker返回上传图像的绝对路径

我的生成选择器函数

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是以这种形式返回的

此url不能用于img标记,因为它不是上载图像的绝对路径
那么我应该如何获得绝对路径呢?

查看文档(),它指出应该使用“嵌入URL”

您可以轻松地调试和检查响应。我在我的一个项目中集成了GooglePicker,我能够获得图像的完整url

编辑: 我已经检查了我的代码,实际上我不得不使用谷歌文件api来获取链接。也就是说,对传递文件id的{id}进行ajax调用。可以在img标记中使用的绝对url位于“webContentLink”属性中

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

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