为了账号安全,请及时绑定邮箱和手机立即绑定

谷歌驱动 API 发布文档并获取发布链接

谷歌驱动 API 发布文档并获取发布链接

白衣染霜花 2022-01-20 17:16:12
如果我在 Google 驱动器中创建文档并输入一些文本,我可以稍后转到文件 => 发布到网络并获得指向google doc 的公共网页样式的链接以及嵌入链接。这就是它手动完成的方式。如何使用Goolgle Drive API使用Node.JS 服务器脚本(例如,使用服务帐户)自动执行此操作?我在他们的文档中找不到有关此特定内容的任何信息,这可能吗?我需要制作一个谷歌脚本吗?甚至有可能吗?
查看完整描述

1 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

  • 您希望使用带有 Node.js 的 googleapis 将 Google 文档发布到 Web。

  • 您要检索已发布的 URL。

  • 您希望使用服务帐户来实现此目的。

  • 您已经拥有服务帐户并能够使用 Drive API。

从您的问题和回复评论中,我可以理解为这样。如果我的理解是正确的,这个答案怎么样?请认为这只是几个可能的答案之一。

用法:

为了使用以下示例脚本,请执行以下流程。

  1. 准备一份谷歌文档。

    • 在这种情况下,作为测试用例,请在您的 Google Drive 中创建新的 Google Document。

  2. 将创建的 Google 文档与作为作者的服务帐户的电子邮件共享。

  3. 检索 Google 文档的文件 ID。

  4. 将变量设置为以下示例脚本。

  5. 运行脚本。

    • 在这种情况下,使用 Drive API 的“Revisions: update”。

这样,Google 文档就会发布到网络上,您可以在控制台中看到发布的 URL。

示例脚本:

const { google } = require("googleapis");


// Please set the email and private key of service account.

const auth = new google.auth.JWT(

  "### email of service account ###",

  null,

  "### private key of service account ###" ,

  ["https://www.googleapis.com/auth/drive"]

);

const fileId = "###"; // Please set the file ID.


const drive = google.drive({ version: "v3", auth });

const body = {

  resource: {

    published: true,

    publishedOutsideDomain: true,

    publishAuto: true

  },

  fileId: fileId,

  revisionId: 1

};

drive.revisions.update(body, err => {

  if (err) {

    console.error(err);

    return;

  }

  console.log(`https://docs.google.com/document/d/${fileId}/pub`);

});

请将私钥设置为"-----BEGIN PRIVATE KEY-----\n###\n-----END PRIVATE KEY-----\n".

笔记:

发布的网址是https://docs.google.com/document/d/${fileId}/pub。在这种情况下,使用文件 ID。因为不幸的是,在当前阶段,https://docs.google.com/document/d/e/2PACX-###/pubhtmlGoogle API 无法检索到类似的 URL。


查看完整回答
反对 回复 2022-01-20
  • 1 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信