Ich denke, dass wäre schön, das Codebeispiel basierend auf der Antwort von Nivco zu zeigen. Mit Javascript können Sie es so machen:
var google = require('googleapis');
var _ = require('lodash-node/compat');
var Q = require('q');
var OAuth2 = google.auth.OAuth2;
var CLIENT_ID = '...';
var CLIENT_SECRET = '...';
var REDIRECT_URL = '...';
var shareFile = function (fileName) {
var deferred = Q.defer();
var drive = google.drive('v2');
var auth = new OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
drive.files.list({auth: auth}, function (err, res) {
var foundFile = _.first(_.filter(res.items, {title: fileName, "explicitlyTrashed": false}));
if (!foundFile) {
deferred.reject('File ' + fileName + ' has not been found.');
return;
}
drive.permissions.list({fileId: foundFile.id, auth: auth}, function (err, res) {
if (_.isEmpty(_.find(res.items, 'role', 'reader'))) {
var body = {
'value': 'default',
'type': 'anyone',
'role': 'reader'
};
drive.permissions.insert({
fileId: foundFile.id,
resource: body,
auth: auth
}, function (err, res, body) {
deferred.resolve(body);
});
}
});
});
return deferred.promise;
};
Wenn Sie eine Datei mithilfe von Berechtigungen öffentlich machen, müssen Sie auch "value" festlegen, was in der Dokumentation als "die E-Mail-Adresse oder der Domänenname für die Entität" beschrieben wird. Was sollte "Wert" sein, wenn Sie möchten, dass die Datei mit "webContentLink" öffentlich verfügbar ist und Sie nicht möchten, dass der Nutzer bei Google Drive angemeldet ist? – user1501783
Der Wert kann ein leerer sein String: '' – Nivco
Antwort ist richtig, aber wenn Sie den Sharing-Link greifen, ist es besser, etwas wie 'https://drive.google.com/open?id={your ID}' zu verwenden. Dies liegt daran, dass 'WebContentLink' leer ist, wenn es sich bei dem freigegebenen Element um ein Verzeichnis handelt. Darüber hinaus bietet 'WebContentLink' einen direkten Download-Link, für den keine Online-Vorschau verfügbar ist. –