2013-05-13 48 views
6

我在GAE(Python 2.7)中有一个应用程序,现在需要访问Google Drive以显示(共享)文件夹和文档列表。如何从Google App Engine使用Google Drive API?

搜索通常会产生指向DrEdit的指针,包括App Engine and Google Drive API,它会提出相同的问题,但接受我不同意的答案,因为DrEdit是Google Drive的示例应用程序,而不是GAE。

从驱动器API中的文件列表是希望我能够从GAE使用:https://developers.google.com/drive/v2/reference/files/list

+0

“DrEdit是用Python在Google App Engine上编写的Web应用程序”。它出什么问题了? https://developers.google.com/drive/examples/python – 2013-05-14 02:18:44

+0

此问题:http://stackoverflow.com/questions/15454708/accessing-google-drive-from-a-google-app-engine-python-app有评论“谢谢,我尝试过了,我也在developers.google.com/drive/examples/python上试过DrEdit(花了我几个小时的工作,直到它意识到它与我的需求没有任何关系)。” DrEdit是Google云端硬盘的应用,即向Google云端硬盘添加功能。我只想从GAE读取驱动器。我会再次看DrEdit,在某处可能有我需要的信息... – cbootle 2013-05-14 08:42:19

+1

DrEdit包含所有必要的设置信息。但是,像许多示例应用程序一样,它非常复杂。如果有人遇到此线程,并且只有Drive-Api-app的基本接线,那将非常有帮助。 – rGil 2013-05-14 13:54:41

回答

4

虽然谷歌App Engine和谷歌驱动器都是谷歌的产品,遗憾的是他们并没有直接的联系。 Google Drive API可以通过google-api-python-client库访问,您必须安装该库。

该方法可以在Python Google Drive API Quickstart Guide发现,并汇总形式如下:

  1. 在谷歌的一边:允许驱动器API访问您的GAE程序

    • Activate Drive API。点击转到凭证按钮继续...
    • 创建您同意画面:设置你的的OAuth同意画面作为谷歌将抛出奇怪的错误,如果这尚未建立:
      • 点击在的OAuth同意画面标签
      • 选择邮箱地址并输入产品名称
    • 获取证书:
      • 点击证书标签
      • 选择添加凭据然后的OAuth 2.0客户端ID。选择你的申请类型,并输入相关的详细信息。你可以稍后改变它们!
      • 回到Credentials选项卡上,下载JSON凭证(一直到表格右边,下载按钮只在你悬停在它附近时才会出现)。将它重命名为client_secret.json,并将其放置在您的根代码目录中。您将需要此来请求用户的凭据。
  2. 在你身边:Download the google-api-python-client library,将它解压缩在你的代码目录并运行python setup.py install。这将安装包含许多Google产品API的库。

  3. 现在您已准备好使用Drive API。您可以使用sample code测试您的访问权限。阅读它是因为它是编写自己的代码的好指南!如果您正在访问用户数据,则需要在登录时请求用户凭据,并且最有可能存储它们。然后,使用API​​,最简单的方法是获得service对象:

    import httplib2 
    from apiclient import discovery 
    
    credentials = get_credentials() #Your function to request/access stored credentials 
    #Authorise access to Drive using the user's credentials 
    http = credentials.authorise(httplib2.Http()) 
    #The service object is the gateway to your API functions 
    service = discovery.build('drive', 'v2', http=http) 
    
    #Run your requests using the service object. e.g. list first 10 files: 
    results = service.files().list(maxResults=10).execute() 
    # ... etc ... Do something with results 
    

上面的代码片断是从sample code修改。

Google Drive的参考API可以是found here

将GAE链接到其他Google产品的API以及例如日历。所有最好的写你的程序!