【问题标题】:Read google drive files读取谷歌驱动文件
【发布时间】:2020-05-21 18:26:21
【问题描述】:

我已将一些序列化的对象集合保存为我的谷歌驱动器中的文件。现在我想在我的 android 应用程序中检索集合。有什么简单的方法吗?

【问题讨论】:

  • 让你的文件世界可读。获取它的网址。并使用 Android 的 httpurlconnection 或 OkHttp 调用它
  • 我已经公开了。我是否需要 client_id.json 和 stored.credential 文件,因为我使用它们从我的 Web 应用程序创建文件,或者由于文件是公开的,所以这些凭据对于 android 应用程序不是必需的?我希望任何使用我的 android 应用程序的人都可以访问该文件,而无需任何中间身份验证步骤。实际上,我要在我的 android 应用程序中读取文件的内容。我不会保存文件 android 用户的手机。
  • 如果它是公开的,您不需要任何凭据。
  • 是否可以在没有凭据的情况下在我的 android 应用中创建公共文件列表?
  • 您的意思是查询驱动器中的文件并显示它们 - 不。

标签: android


【解决方案1】:

谷歌已经为这些目的创建了一个 api。如果它只是供您使用(相对于允许访问其他 google 用户),您可以将自己授权为服务帐户 (instructions here),这将使您的应用程序可以访问您的驱动器帐户。

然后您需要构建一个应用程序来完成任务。根据您的描述,您的工作流程类似于读取驱动器文件、选择所需文档并处理所需信息。你会想要深入了解他们的 api,他们将其分成几个组件,包括驱动器、工作表、文档和 gmail。这里有几个资源:

Drive API

Searching Files

应用程序看起来像这样(在 python 中):

from googleapiclient.discovery import build
from google.oauth2 import service_account

SCOPES = [
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/documents',
]

SERVICE_ACCOUNT_FILE = 'credentials.json'
DOCUMENT_ID = '123adsb' # get this from the google doc url 


def get_credentials():
    return service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)


CREDENTIALS = get_credentials()
DRIVE = build('drive', 'v3', credentials=CREDENTIALS)
DOCS = build('docs', 'v1', credentials=CREDENTIALS)

def get_file(): # copy file from drive
    document = DOCS.get(documentId=DOCUMENT_ID).execute()
    print(dir(document)) # process document

if __name__ == '__main__':
    get_file()

【讨论】:

  • 我正在从我的 Java Spring Web 应用程序中获取文件列表。我会在 Android Java 上尝试一下。
猜你喜欢
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多