是否可以使用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()
权限是谷歌驱动器的一部分,而不是具体到电子表格,让你需要使用Google Drive API。请参阅reference。
谢谢,我能够公开它,但我无法嵌入它在网页中。这可能是另一个设置,可以通过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令牌,或者同时提供这两种令牌 - 无论哪种选择最适合您。
这就是所有描述使用API访问已经公开/私有的数据的过程。但问题是如何使用API来首先设置数据的公有/私有状态。 – BrenBarn
为什么你需要通过API来做到这一点?只需打开您的Google云端硬盘,即可获得永不会改变的可共享链接,然后将其复制到任何地方 –
@ cricket_007有充足的理由;也许他们需要每天发布1000个或新的,或者... – Thomas
@Thomas啊,没有考虑可伸缩性 –