Google drive api 是否可以通过Google Drive API公开共享文件

Google drive api 是否可以通过Google Drive API公开共享文件,google-drive-api,Google Drive Api,我正在开发googledrive应用程序,它允许用户创建必须是公共的文件 我可以看到一些示例,其中我们可以在Google drive-through API中创建一个文件 但是,, 创建文件时,是否可以将文件共享为public您可以使用权限提要设置文件的访问控制列表。文档位于此处: 要公开文件,您需要将角色读卡器分配给类型任何人 然后,如果您希望将链接共享给他人,您可以获取API中文件元数据中返回的webContentLinkURL,它将允许任何用户下载该文件。您还可以使用它将共享文件嵌入HT

我正在开发
googledrive应用程序
,它允许用户创建必须是公共的文件

我可以看到一些示例,其中我们可以在Google drive-through API中创建一个文件

但是,,
创建文件时,是否可以将文件共享为
public

您可以使用权限提要设置文件的访问控制列表。文档位于此处:

要公开文件,您需要将角色
读卡器
分配给类型
任何人


然后,如果您希望将链接共享给他人,您可以获取API中文件元数据中返回的
webContentLink
URL,它将允许任何用户下载该文件。您还可以使用它将共享文件嵌入HTML(例如
标记中的图像)。

我认为根据Nivco提供的答案显示代码示例会很好。使用Javascript,您可以这样做:

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;

})

当使用权限公开文件时,还需要设置“值”,文档中将其描述为“实体的电子邮件地址或域名”当您希望使用“webContentLink”公开该文件,并且不希望要求用户登录到Google Drive时,“value”应该是什么?该值可以是空字符串:“”答案是正确的,但当您获取共享链接时,最好使用
https://drive.google.com/open?id={your ID}
。这是因为如果共享项是目录,
WebContentLink
将为空。此外,
WebContentLink
提供了一个直接下载链接,没有在线预览。