[英]How to make drive folder "public to the web" using Google API v3 in Python?
I can make a folder using:我可以使用以下方法创建文件夹:
from Google import Create_Service
CLIENT_SECRET_FILE = "credentials_gsuite.json"
API_NAME = "drive"
API_VERSION ="v3"
SCOPES = ["https://www.googleapis.com/auth/drive"]
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
folder_name = "Folder"
file_metadata = {"name" : folder_name, "mimeType" : "application/vnd.google-apps.folder"}
service.files().create(body=file_metadata,).execute()
And i need to make folder "public to the web" .而且我需要将文件夹设为“对网络公开”。 In order to do that i need to specify permisions:
为此,我需要指定权限:
'role': 'reader
and a type to:和一个类型:
'type': 'anyone'
and to allow:并允许:
"allowFileDiscovery": True
judging by the documentation this should work:从文档来看,这应该有效:
from Google import Create_Service
CLIENT_SECRET_FILE = "credentials_gsuite.json"
API_NAME = "drive"
API_VERSION ="v3"
SCOPES = ["https://www.googleapis.com/auth/drive"]
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
folder_name = "Folder"
file_metadata = {"name" : folder_name, "mimeType" : "application/vnd.google-apps.folder", 'role': 'reader', 'type': 'anyone',"allowFileDiscovery": True}
service.files().create(body=file_metadata,).execute()
But im not getting it published on to the web.但我没有把它发布到网上。 What am I missing?
我错过了什么?
Documentation: https://developers.google.com/drive/api/v3/reference/permissions文档: https : //developers.google.com/drive/api/v3/reference/permissions
service.files().create()
, it seems that permissions
is not writable.service.files().create()
的方法中,似乎permissions
不可写。 When {"mimeType":"application/vnd.google-apps.folder","name":"sample","permissions":[{"role":"reader","type":"anyone","allowFileDiscovery":true}]}
is used as the request body of "Files: create", an error like The resource body includes fields which are not directly writable.
{"mimeType":"application/vnd.google-apps.folder","name":"sample","permissions":[{"role":"reader","type":"anyone","allowFileDiscovery":true}]}
作为"Files: create"的请求体,出现类似The resource body includes fields which are not directly writable.
的错误The resource body includes fields which are not directly writable.
occurs. When this is reflected to your script, it becomes as follows.当这反映到您的脚本时,它变成如下。
folder_name = "Folder"
file_metadata = {"name": folder_name, "mimeType": "application/vnd.google-apps.folder"}
folder = service.files().create(body=file_metadata,).execute()
folderId = folder.get('id')
permission = {
'role': 'reader',
'type': 'anyone',
'allowFileDiscovery': True
}
res = service.permissions().create(fileId=folderId, body=permission).execute()
print(res)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.