是否可以使用Google电子表格API制作公开电子表格?

问题描述:

我想以编程方式使用Google工作表API创建一个Google工作表,将其公开并嵌入到网页的iframe中。是否可以使用Google电子表格API制作公开电子表格?

我无法弄清楚如何使电子表格公开使用API​​。当您创建或更新电子表格时,在API中是否有这样的设置?

我按照这个指南在这里,并能够创建和更新电子表格。 https://developers.google.com/sheets/api/quickstart/python

更新。使用驱动器API我可以公开电子表格,并且可以从其他帐户访问它。但是,这不允许你将它嵌入到网页中(它仍然声明“很抱歉,本文未发表)”。必须有另一个设置。是否可以使用驱动器API进行设置?这里

FWIW是我能够做到把它公开(但仍无法使嵌入片在iframe)

SCOPES = ['https://www.googleapis.com/auth/spreadsheets', 
      'https://www.googleapis.com/auth/drive.metadata', 
      'https://www.googleapis.com/auth/drive.file', 
      'https://www.googleapis.com/auth/drive'] 

drive_client = discovery.build('drive', 'v3', http=creds.authorize(Http())) 
user_permission = { 
    'type': 'anyone', 
    'role': 'reader', 
} 
result =drive_client.permissions().create(
    fileId=sheed_id, 
    body=user_permission, 
).execute() 
+1

为什么你需要通过API来做到这一点?只需打开您的Google云端硬盘,即可获得永不会改变的可共享链接,然后将其复制到任何地方 –

+1

@ cricket_007有充足的理由;也许他们需要每天发布1000个或新的,或者... – Thomas

+0

@Thomas啊,没有考虑可伸缩性 –

权限是谷歌驱动器的一部分,而不是具体到电子表格,让你需要使用Google Drive API。请参阅reference

+0

谢谢,我能够公开它,但我无法嵌入它在网页中。这可能是另一个设置,可以通过API设置吗? – 1337Rooster

https://developers.google.com/sheets/api/guides/authorizing

请求授权

当你的应用程序请求的私人资料,这个要求必须由谁有权访问这些数据的验证用户的授权。

当您的应用程序请求公共数据时,该请求不需要授权,但需要附带一个标识符,例如API密钥。

您的应用程序发送给Google Sheets API的每个请求都需要向Google标识您的应用程序。有两种方法可以识别您的应用程序:使用OAuth 2.0令牌(也授权请求)和/或使用应用程序的API密钥。以下是如何确定要使用的这些选项:

如果请求需要授权(例如用于个人的私人数据的请求),则应用程序必须提供OAuth 2.0令牌与所述请求。应用程序也可能提供API密钥,但它不必。 如果请求不需要授权(例如对公共数据的请求),那么应用程序必须提供API密钥或OAuth 2.0令牌,或者同时提供这两种令牌 - 无论哪种选择最适合您。

+2

这就是所有描述使用API​​访问已经公开/私有的数据的过程。但问题是如何使用API​​来首先设置数据的公有/私有状态。 – BrenBarn