对于我的Nodejs项目,我使用Google Drive API进行文件共享。但问题是,我从API获得的URL不是可共享的链接。所以我必须去驱动器并打开共享。有没有办法获得可共享链接或使用java脚本代码切换共享?请给我一个解决方案。
这些评论非常有用,此解决方案适用于Google云端硬盘和Google Doc v1的v3。我使用jwt
auth作为服务帐户,使用Drive v2的alternativeLink
不可共享。
我假设auth过程已知且完整。我正在用块编写代码,所以使用await
,promises或callbacks是读者的选择
首先,您需要创建一个文档:
google.docs({version: 'v1', auth});
docs.documents.create({title: "Your Title"}, (error, response) => {
if (error) return;
//So now you have the documentId
const {data: {documentId}} = response;
});
现在使用documentId
我们需要向doc添加权限。关键是向任何人授予许可。该文档解释anyone
不需要电子邮件或用户。
const resource = {"role": "reader", "type": "anyone"};
drive.permissions.create({fileId:documentId, resource: resource}, (error, result)=>{
if (error) return;
//If this work then we know the permission for public share has been created
});
现在我们几乎准备好了,我们只需要URL。很高兴可共享的URL具有稳定的格式,因此我们可以自己编写它而无需额外的请求:
https://docs.google.com/document/d/${documentId}}/view
Node.js谷歌Api快速变化,如果有任何混淆,我正在使用"googleapis": "^38.0.0",