2017-08-14 144 views
2

我想以編程方式使用Google工作表API創建一個Google工作表,將其公開並嵌入到網頁的iframe中。是否可以使用Google電子表格API製作公開電子表格?

我無法弄清楚如何使電子表格公開使用API​​。當您創建或更新電子表格時,在API中是否有這樣的設置?

我按照這個指南在這裏,並能夠創建和更新電子表格。 https://developers.google.com/sheets/api/quickstart/python

更新。使用驅動器API我可以公開電子表格,並且可以從其他帳戶訪問它。但是,這不允許你將它嵌入到網頁中(它仍然聲明「很抱歉,本文未發表)」。必須有另一個設置。是否可以使用驅動器API進行設置?這裏

FWIW是我能夠做到把它公開(但仍無法使嵌入片在iframe)

SCOPES = ['https://www.googleapis.com/auth/spreadsheets', 
      'https://www.googleapis.com/auth/drive.metadata', 
      'https://www.googleapis.com/auth/drive.file', 
      'https://www.googleapis.com/auth/drive'] 

drive_client = discovery.build('drive', 'v3', http=creds.authorize(Http())) 
user_permission = { 
    'type': 'anyone', 
    'role': 'reader', 
} 
result =drive_client.permissions().create(
    fileId=sheed_id, 
    body=user_permission, 
).execute() 
+1

爲什麼你需要通過API來做到這一點?只需打開您的Google雲端硬盤,即可獲得永不會改變的可共享鏈接,然後將其複製到任何地方 –

+1

@ cricket_007有充足的理由;也許他們需要每天發佈1000個或新的,或者... – Thomas

+0

@Thomas啊,沒有考慮可伸縮性 –

回答

2

權限是谷歌驅動器的一部分,而不是具體到電子表格,讓你需要使用Google Drive API。請參閱reference

+0

謝謝,我能夠公開它,但我無法嵌入它在網頁中。這可能是另一個設置,可以通過API設置嗎? – 1337Rooster

-1

https://developers.google.com/sheets/api/guides/authorizing

請求授權

當你的應用程序請求的私人資料,這個要求必須由誰有權訪問這些數據的驗證用戶的授權。

當您的應用程序請求公共數據時,該請求不需要授權,但需要附帶一個標識符,例如API密鑰。

您的應用程序發送給Google Sheets API的每個請求都需要向Google標識您的應用程序。有兩種方法可以識別您的應用程序:使用OAuth 2.0令牌(也授權請求)和/或使用應用程序的API密鑰。以下是如何確定要使用的這些選項:

如果請求需要授權(例如用於個人的私人數據的請求),則應用程序必須提供OAuth 2.0令牌與所述請求。應用程序也可能提供API密鑰,但它不必。 如果請求不需要授權(例如對公共數據的請求),那麼應用程序必須提供API密鑰或OAuth 2.0令牌,或者同時提供這兩種令牌 - 無論哪種選擇最適合您。

+2

這就是所有描述使用API​​訪問已經公開/私有的數據的過程。但問題是如何使用API​​來首先設置數據的公有/私有狀態。 – BrenBarn

相關問題