使用Google云端硬盘网络界面,我右键点击文件,选择“共享”,即可进入“共享设置”.我将文件设置为“在网络上公开 – 互联网上的任何人都可以查找和查看”.
然后我复制“链接到共享”,在这种情况下它是:
https://docs.google.com/open?id=0B6Cpn8NXwgGPbFBPMEh5VHc1cUU
然后我点击“完成”.
如果我打开另一个浏览器,没有cookie,并尝试访问该链接,我将被重定向到Google的登录页面.我假设此设置意味着无需身份验证即可查看该文件.这是预期的行为吗?
我试图通过API做同样的事情,并且在将权限设置为public,将“everyone”设置为“reader”并将文件的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界面,因为看起来我希望使用谷歌所做的正确结果似乎更简单.
最佳答案 我终于在我的案例中找到了问题.我的GAE应用程序使用“联合登录”进行“身份验证选项”,而不是“Google帐户API”.一切都适用于Google Drive API.我可以使用Oauth登录来放置文件,删除,移动,命名.但是一段时间以来,我一直无法通过我的GAE应用程序从Google云端硬盘公开共享文件.如果在未登录Google Apps的情况下尝试查看这些文件,系统会始终提示我登录.
我决定放弃Oauth登录GAE并使用Google帐户登录,因为使用该应用的所有人现在都需要Google云端硬盘.将仪表板中的GAE应用程序从“联合”切换为“Google帐户”后,我可以愉快地向公众共享文件,无需任何登录.
因此,Google Drive似乎还没有完全支持GAE的“联合登录”,因为“联合登录”显示为实验性的,所以几乎没有什么可抱怨的.