Google drive api 在谷歌硬盘中与公众共享文件

Google drive api 在谷歌硬盘中与公众共享文件,google-drive-api,Google Drive Api,使用Google Drive web界面,我右键单击一个文件,选择“共享”,进入“共享设置”。我将文件设置为“网上公共-互联网上的任何人都可以查找和查看” 然后我复制“共享链接”,在这种情况下是: 然后单击“完成” 如果我打开另一个浏览器,没有cookies,并尝试访问该链接,我将被重定向到谷歌的登录页面。我假设这个设置意味着查看文件不需要身份验证。这是预期的行为吗 我正试图通过API做同样的事情,但在将权限设置为public、将“anyone”设置为“reader”以及将文件的webCont

使用Google Drive web界面,我右键单击一个文件,选择“共享”,进入“共享设置”。我将文件设置为“网上公共-互联网上的任何人都可以查找和查看”

然后我复制“共享链接”,在这种情况下是:

然后单击“完成”

如果我打开另一个浏览器,没有cookies,并尝试访问该链接,我将被重定向到谷歌的登录页面。我假设这个设置意味着查看文件不需要身份验证。这是预期的行为吗

我正试图通过API做同样的事情,但在将权限设置为public、将“anyone”设置为“reader”以及将文件的webContentLink值用作发布的URL时,我也没有得到预期的结果。同样在这种情况下,如果我在未登录谷歌应用程序时转到链接,我将被重定向以登录

我调用以下方法来使用此设置权限:

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所做的来确定我是否期望得到正确的结果似乎更简单。

我终于在我的案例中找到了问题所在。我的GAE应用程序使用“联邦登录”作为“身份验证选项”,而不是“谷歌账户API”。一切都与谷歌驱动API一起工作。通过Oauth登录,我可以放置文件、删除、移动,您可以随意选择。但有一段时间以来,我一直无法公开共享从我的GAE应用程序创建的GoogleDrive文件。如果我试图在没有登录谷歌应用的情况下查看这些文件,我总是被提示登录

我决定放弃GAE的Oauth登录,使用Google帐户登录,因为现在每个使用该应用的人都需要Google Drive。在将仪表板中的GAE应用程序从“联邦”切换到“谷歌账户”后,我可以愉快地向公众共享文件,而无需任何登录


因此,Google Drive似乎还没有完全支持GAE的“联合登录”,这几乎没有什么可抱怨的,因为“联合登录”是实验性的。

这是一个编程问题吗?好问题,Alex,它实际上与编程有关。我对问题进行了编辑,以澄清这一点。肯定是关于主题的。你能显示你向API发出的设置权限的请求吗?谢谢阿里,我已经编辑了这个问题,添加了我用来在API中设置权限的代码。但是即使是公开的,我们的文件也不会在谷歌搜索中显示,对吗?我希望他们出现,你做到了吗?或者我们必须在描述这些文件的网页上发布googleDrive链接,这样就可以通过谷歌搜索找到这些文件了?