我正在使用Google Drive API,以便用户将文件从Google云端硬盘帐户上传到我的网站。当我保存这些文件时,我得到0 KB PDF,107 KB DOC“临时移动”等等......
GDrive JS方法:
var MyGoogleDrive = function (obj) {
// The Browser API key obtained from the Google Developers Console.
var developerKey = 'AIzaSyARiUlXRErh7NCQTv6j7YvWCuRaTCZ64S4';
// The Client ID obtained from the Google Developers Console. Replace with your own Client ID.
var clientId = "405458969849-eqr9rrjsq5th2a0av2o3bc72adn4d8hu.apps.googleusercontent.com";
// Scope to use to access user's photos.
var scope = ['https://www.googleapis.com/auth/drive.readonly'];
var pickerApiLoaded = false;
var oauthToken;
// Use the API Loader script to load google.picker and gapi.auth.
function onApiLoad() {
gapi.load('auth', {'callback': function(){}});
gapi.load('picker', {'callback': onPickerApiLoad});
}
function onAuthApiLoad() {
window.gapi.auth.authorize(
{
'client_id': clientId,
'scope': scope,
'immediate': false
},
handleAuthResult);
}
function onPickerApiLoad() {
pickerApiLoaded = true;
createPicker();
}
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
oauthToken = authResult.access_token;
pickerApiLoaded = true;
createPicker();
}
}
// Create and render a Picker object for picking user Photos.
function createPicker() {
if (pickerApiLoaded && oauthToken) {
var view = new google.picker.DocsView(google.picker.ViewId.DOCUMENTS);
view.setIncludeFolders(true);
view.setMimeTypes("application/pdf, image/png, image/jpeg, application/vnd.openxmlformats-officedocument.wordprocessingml.document");
/*var view1 = new google.picker.DocsView(google.picker.ViewId.DOCUMENTS);
view1.setIncludeFolders(true);
var view2 = new google.picker.DocsView(google.picker.ViewId.DOCUMENTS);
view2.setIncludeFolders(true);*/
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setOAuthToken(oauthToken)
.addView(view)
.addView(google.picker.ViewId.FOLDERS)
.addView(google.picker.ViewId.DOCS)
.addView(google.picker.ViewId.DOCUMENTS)
.addView(google.picker.ViewId.SPREADSHEETS)
.addView(google.picker.ViewId.DOCS_IMAGES)
.addView(google.picker.ViewId.PDFS)
.setLocale('de')
.setDeveloperKey(developerKey)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
}
}
// A simple callback implementation.
function pickerCallback(data) {
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
var files = data[google.picker.Response.DOCUMENTS];
for(var i=0, l = files.length; i<l; i++){
(function(i){
$.ajax({
url: obj.url,
type: 'post',
data: 'name='+files[i].name+'&link='+files[i].embedUrl+'&provider=google',
dataType: 'json',
async: false,
success: function (data){
if(data.name){
obj.htmlBlock.add(data);
}
},
error: function(error){
alert(error.responseText);
}
});
})(i);
}
}
}
return {
init: function () {
this.$el = $(obj.el);
var self = this;
onApiLoad();
self.$el.click(function(){
onAuthApiLoad();
});
}
};
}
上传文档的回复
<HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://accounts.google.com/ServiceLogin?service=wise&passive=1209600&continue=https://drive.google.com/file/d/0B6eEvsGbzVY9MWcxbnVfWWpBX2s/preview&followup=https://drive.google.com/file/d/0B6eEvsGbzVY9MWcxbnVfWWpBX2s/preview">here</A>.
</BODY>
</HTML>