【问题标题】:Nodejs Google Drive API Shareable linkNodejs Google Drive API 共享链接
【发布时间】:2017-11-23 04:55:32
【问题描述】:

对于我的 Nodejs 项目,我使用 Google drive API 进行文件共享。但问题是,我从 API 获得的 URL 不是可共享的链接。所以我必须去驱动器并打开共享。有没有办法获取可共享链接或使用 java 脚本代码打开共享?请给我一个解决方案。

【问题讨论】:

  • 你试过inserting a permission吗?添加角色:读者,类型:任何人,withLink:true 权限应使其通过 URL 共享。
  • 我正在使用 OAuth 2.0 用户登录。用户访问他们的 G 驱动器。需要通过API设置权限。
  • 尝试使用alternateLink for v2 或webViewLink for v3,您可以使用该链接并分享给其他人以访问您的文件。
  • 感谢 cmets 伙计们。

标签: javascript node.js google-drive-api google-apis-explorer


【解决方案1】:

cmets 确实很有帮助,此解决方案适用于 Google Drive v3 和 Google Doc v1。我将jwt auth 用于服务帐户,而使用Drive v2 的alternativeLink 是不可共享的。

我假设身份验证过程是已知且完整的。我正在以块的形式编写代码,因此使用await、承诺或回调是读者的选择

首先,您需要创建一个文档:

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,我们需要为文档添加权限。 关键是向任何人授予权限。该文档解释说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 Google Api 变化很快,万一出现混淆,我使用"googleapis": "^38.0.0",

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多