Aşağıdaki filepicker.js
kodunu kullanıyorum, belgeleri ve klasörleri görüntülemek için iyi çalışıyor. Klasörü görüntülemek için Google seçiciyi açtığımda, sonraki aramalarda birden çok seçici açılır.Google seçici, sonraki klasör arama seçimi çağrılarını açmak için
(function() {
/**
* Initialise a Google Driver file picker
*/
var myType = 'empty';
var FilePicker = window.FilePicker = function (options) {
// Config
this.apiKey = options.apiKey;
this.clientId = options.clientId;
this.accesstoken = options.accesstoken;
myType = options.dType;
// Elements
this.buttonEl = options.buttonEl;
// Events
this.onSelect = options.onSelect;
this.buttonEl.addEventListener('click', this.open.bind(this));
// Disable the button until the API loads, as it won't work properly until then.
this.buttonEl.disabled = true;
// Load the drive API
gapi.client.setApiKey(this.apiKey);
gapi.client.load('drive', 'v2', this._driveApiLoaded.bind(this));
google.load('picker', '1', { callback: this._pickerApiLoaded.bind(this) });
}
FilePicker.prototype = {
/**
* Open the file picker.
*/
open: function() {
// Check if the user has already authenticated
var token = gapi.auth.getToken();
if (token) {
// alert(JSON.stringify(token) + " token status");
this._showPicker();
} else {
// The user has not yet authenticated with Google
// We need to do the authentication before displaying the Drive picker.
this._doAuth(true, function() {
// alert('in the doAuth ')
this._showPicker();
}.bind(this));
}
},
/**
* Show the file picker once authentication has been done.
* @private
*/
_showPicker: function() {
var view = null;
if (myType == "Folder") {
view = new google.picker.DocsView(google.picker.ViewId.FOLDERS)
.setIncludeFolders(true)
.setMimeTypes('application/vnd.google-apps.folder')
.setSelectFolderEnabled(true);
}
if (myType=="DOC") {
view = google.picker.ViewId.DOCUMENTS;
}
if (myType == "PPT") {
view = google.picker.ViewId.PRESENTATIONS;
}
// alert("Final access token "+ this.accesstoken);
// alert(this.picker);
this.picker = new google.picker.PickerBuilder().
addView(view).
setAppId(this.clientId).
setOAuthToken(this.accesstoken).
setCallback(this._pickerCallback.bind(this)).
build().
setVisible(true);
console.log(view);
},
/**
* Called when a file has been selected in the Google Drive file picker.
* @private
*/
_pickerCallback: function (data) {
if (myType == "DOC" || myType == "PPT") {
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
var file = data[google.picker.Response.DOCUMENTS][0];
url = file[google.picker.Document.URL];
this._fileGetCallback(url);
}
}
if (myType == "Folder") {
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
console.log(google.picker);
var url = JSON.stringify(data.docs[0]);
this._fileGetCallback(url);
}
}
},
/**
* Called when file details have been retrieved from Google Drive.
* @private
*/
_fileGetCallback: function (abc) {
if (this.onSelect) {
this.onSelect(abc);
}
},
/**
* Called when the Google Drive file picker API has finished loading.
* @private
*/
_pickerApiLoaded: function() {
this.buttonEl.disabled = false;
},
/**
* Called when the Google Drive API has finished loading.
* @private
*/
_driveApiLoaded: function() {
this._doAuth(true);
},
/**
* Authenticate with Google Drive via the Google JavaScript API.
* @private
*/
_doAuth: function (immediate, callback) {
gapi.auth.authorize({
client_id: this.clientId,
scope: 'https://www.googleapis.com/auth/drive',
immediate: immediate
}, callback);
}
};
Mutlak google görüntüleme yapmayı nasıl bırakabilirim?
Benim için çalıştı vermedi: Aşağıda
çoklu seçim görünümü devre dışı bırakmak için bir örnek kod verilmiştir. –