2017-04-12 42 views
0

如何使用新的APIv4按名稱而不是按ID打開表單?好像所有的例子都有spreadsheetID=key,並沒有看到如何通過名稱來完成它。我需要打開名單並獲得ID。APIv4按名稱的Google表單打開表

基本上我想要做的是操縱一個新的工作表一旦被使用下面的代碼複製:

drive.auth.service.files().copy(fileId= g.tkey,body={"parents": [{"kind": "drive#fileLink","id": g.mfolder}], 'title': copy_name}).execute()

新的片材有一個名字copy_name,我怎麼弄該表的ID?

回答

1

在Google Sheets API v4中,它無法直接從文件名打開電子表格。 Sheet API v4的所有API都要求spreadsheetId使用工作表。但是您可以使用文件名來檢索spreadsheetId。因此,您可以通過使用文件名來檢索spreadsheetId,從文件名中打開電子表格。

爲了從文件名檢索spreadsheetId,它使用Drive API。 python腳本如下。 Drive API v3用於它。它可能會添加一個範圍(https://www.googleapis.com/auth/drive.file)。

腳本:

res = service.files().list(q="trashed=false and name='" + copy_name + "'", fields="files(id)").execute() 

結果:

{'files': [{'id': '#####'}]} 

你可以retrive JSON作爲結果。使用這個ID,你可以使用電子表格。

+0

我得到一個「無效查詢」HttpError。 – jason

+0

我想通了......它應該是'res = drive.auth.service.files()。list(q =「title ='」+ copy_name +「'」,fields =「items(id)」)。執行()'。可能是API的不同版本。字段語法也改變了。 – jason

+0

使用''title''和''''''作爲文件名和數組是第2版。對不起,我注意不到它。 – Tanaike