from google_auth_oauthlib.flow import InstalledAppFlow

# 替換為你的憑證文件路徑
credentials = Credentials.from_authorized_user_info(
info=InstalledAppFlow.from_client_secrets_file("your_client_secret.json").run_local_server()
)

這段代碼會打開一個本地服務器,引導你完成身份驗證流程。成功后,我們就獲得了一個Credentials對象,用于后續(xù)的API調(diào)用。

小貼士:為了安全,請妥善保管你的憑證文件,切勿將其上傳到公共區(qū)域。

調(diào)用Google Drive API

好了,讓我們開始真正使用google-api-python-client庫吧!我們首先來演示如何調(diào)用Google Drive API,列出當前用戶的所有文件。

from googleapiclient.discovery import build

# 創(chuàng)建Google Drive API客戶端
drive_service = build("drive", "v3", credentials=credentials)

# 列出用戶的所有文件
results = drive_service.files().list(fields="nextPageToken, files(id, name)").execute()

# 打印文件列表
items = results.get("files", [])
if not items:
print("沒有找到任何文件。")
else:
print("文件列表:")
for item in items:
print(f"{item['name']} (id: {item['id']})")

上面的代碼首先使用build函數(shù)創(chuàng)建了一個Google Drive API的客戶端對象。然后,我們調(diào)用files().list()方法列出當前用戶的所有文件。最后,循環(huán)打印每個文件的名稱和ID。

運行這段代碼,你應該能看到自己Google Drive中的文件列表了!是不是很神奇?我們僅用幾行Python代碼,就能方便地與Google Drive進行交互。

上傳文件到Google Drive

接下來,我們再來學習如何將一個本地文件上傳到Google Drive。

from googleapiclient.http import MediaFileUpload

# 本地文件路徑
file_path = "path/to/your/file.txt"

# 創(chuàng)建文件元數(shù)據(jù)
file_metadata = {"name": "my_uploaded_file.txt"}

# 創(chuàng)建MediaFileUpload對象
media = MediaFileUpload(file_path, resumable=True)

# 執(zhí)行上傳請求
file = drive_service.files().create(body=file_metadata, media_body=media, fields="id").execute()

print(f"文件 {file.get('id')} 已成功上傳!")

上面的代碼首先創(chuàng)建了一個file_metadata字典,用于指定上傳文件的元數(shù)據(jù)(這里僅設置了文件名)。然后,我們創(chuàng)建一個MediaFileUpload對象,表示要上傳的本地文件。

接下來,就是最關鍵的一步了,我們調(diào)用files().create()方法執(zhí)行上傳請求。這個方法需要傳入文件元數(shù)據(jù)、文件內(nèi)容對象,以及其他選項。成功后,它會返回一個包含文件ID的響應對象。

就這么簡單,我們的文件就上傳到Google Drive中了!你可以去Google Drive中查看上傳的文件。

注意事項:上傳大文件時,請將resumable選項設置為True,以支持斷點續(xù)傳。

小結(jié)

今天,我們學習了如何使用google-api-python-client庫集成Google云服務API。我們演示了列出Google Drive中的文件,以及上傳本地文件到Google Drive的操作。

相信通過本次學習,你已經(jīng)初步體會到了這個庫的強大之處。它就像一位云服務集成專家,讓我們在Python代碼中輕松地操作各種Google云服務API,大大提高了開發(fā)效率。

當然,google-api-python-client庫所支持的遠不止Google Drive API。它還支持Google云存儲、Google云視頻智能、Google云自然語言等數(shù)十種API。你可以嘗試學習和使用其他API,探索更多有趣的功能。

如果你在學習過程中遇到任何疑問或困難,歡迎隨時與我互動交流。實踐是最好的老師,希望你能在實戰(zhàn)中獲得更多樂趣和收獲。祝你在Python的學習道路上一帆風順,期待與你下次再見!

文章轉(zhuǎn)自微信公眾號@老沖浪工程師

上一篇:

教你用百度地圖API抓取建筑物周邊位置、房價信息

下一篇:

Python 云計算接口集成秘籍:十招搞定云服務 API
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數(shù)據(jù)驅(qū)動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費