Question

je travaille sur Google drive application ce qui permettra à l'utilisateur de créer un fichier qui doit être public.

J'ai pu voir un exemple où nous pouvons créer un fichier dans Google Drive via des API.

Mais, lors de la création d'un fichier, est-il possible de partager un fichier comme public.

Était-ce utile?

La solution

Vous pouvez définir la liste de contrôle d'accès du fichier à l'aide du flux d'autorisations.La documentation se trouve ici :

https://developers.google.com/drive/v2/reference/permissions

Pour rendre un fichier public, vous devrez attribuer le rôle reader au type anyone

Ensuite, si vous souhaitez partager un lien avec des personnes, vous pouvez récupérer le webContentLink URL renvoyée dans les métadonnées du fichier dans l'API, elle permettra à tous les utilisateurs de télécharger le fichier.Vous pouvez également l'utiliser pour intégrer le fichier partagé dans HTML (par exemple des images dans <img> Mots clés) .

Autres conseils

Je pense que ce serait bien de montrer l'exemple de code basé sur la réponse fournie par Nivco.Utilisant JavaScript, vous pouvez le faire comme ça:

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;

};

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top