使用 Google Drive 网络界面,我右键单击一个文件,选择“共享”,进入“共享设置”。我将文件设置为“在网络上公开 - Internet 上的任何人都可以找到和查看”。
然后我复制“共享链接”,在本例中为: https ://docs.google.com/open?id=0B6Cpn8NXwgGPbFBPMEh5VHc1cUU
然后我点击“完成”。
如果我打开另一个浏览器,没有 cookie,并尝试访问该链接,我会被重定向到 Google 的登录页面。我认为此设置意味着查看文件不需要身份验证。这是预期的行为吗?
我正在尝试通过 API 做同样的事情,但在将权限设置为公共、将“任何人”设置为“阅读者”以及使用文件的 webContentLink 值作为发布的 URL 时,我都没有得到预期的结果。同样在这种情况下,如果我在未登录 Google Apps 时转到该链接,我将被重定向到登录。
我使用以下方法调用以下方法来设置权限:
thePermission = insert_permission(userNickName,file['id'],"me","anyone","reader")
方法:
def insert_permission(userNickName,file_id, value, perm_type, role):
credentials = get_stored_credentials(userNickName)
service = CreateDrive(credentials)
if service is None:
return
"""Insert a new permission.
Args:
service: Drive API service instance.
file_id: ID of the file to insert permission for.
value: User or group e-mail address, domain name or None for 'default'
type.
perm_type: The value 'user', 'group', 'domain' or 'default'.
role: The value 'owner', 'writer' or 'reader'.
Returns:
The inserted permission if successful, None otherwise.
"""
new_permission = {
'value': value,
'type': perm_type,
'role': role
}
try:
return service.permissions().insert(
fileId=file_id, body=new_permission).execute()
except errors.HttpError, error:
print 'An error occurred: %s' % error
return None
我主要在这个问题中询问 UI 界面,因为使用 Google 所做的事情来判断我是否期待正确的结果似乎更简单。