簡體   English   中英

如何使用Google Drive API從其他用戶獲取未共享文件的元數據?

[英]How to get metadata of an unshared file from another user with google drive api?

我目前正在使用Admin SDK中Google Reports API開發 C#asp.net mvc網絡應用程序,以便在Google雲端硬盤上發生問題時接收通知。

然后,我還需要使用Drive REST API GET Request通過使用Reports API給出的doc_id來構建文件Path(以及更多)。


一切正常,除非Report API通知我另一個用戶未共享的文件。 Drive REST API試圖查找文件失敗。

這是返回的錯誤404:

Google.Apis.Requests.RequestError
File not found: 0B48ytfDI5h8qY2k4VzdjMkZRNXM [404]
Errors [
    Message[File not found: 0B48ytfDI5h8qY2k4VzdjMkZRNXM] Location[file - other] Reason[notFound] Domain[global]
] 

我正在使用此范圍: DriveService.Scope.Drive

文件所有者可以使用此表單查看其文件的元數據,並且我仍然遇到錯誤404。

我是硬盤管理員,在我的Google Apps管理員設置中,即使使用域中“所有人”上的“默認共享鏈接”,我也嘗試了不同的配置,但均未成功。


所以我的問題是:當您不是文件所有者並且文件不共享時,是否可以獲取文件元數據?

PS:我正在使用Google Apps進行與我的工作域相關的無限工作,因此我認為至少可以以元數據文件的身份獲取admin,即使該文件未共享也是如此。

據我所知,在Drive API中訪問用戶文件的唯一方法是通過為Web應用程序設置服務帳戶。 您可以在“驅動器API”文檔的“ 域委托”下了解更多信息。

簡要說明一下:

服務帳戶是屬於您的應用程序而不是單個最終用戶的帳戶。 這使您的應用程序有權以您域中的用戶身份進行API調用(也可以“模擬”用戶)。

首先,必須執行以下任務:

  1. 在Google Developers控制台中創建或選擇一個項目,然后啟用API(例如Drive API)。
  2. 轉到憑據,添加新的憑據,然后選擇服務帳戶。 更多細節在這里
  3. 這將創建三個項目(客戶端ID,私鑰文件和電子郵件地址),這是在Google Apps域的管理控制台中授權應用程序所必需的。

現在,需要授予您創建的服務帳戶訪問要訪問的Google Apps域的用戶數據的權限。 這將要求管理員在管理控制台中授權服務帳戶。 因為它是在文檔中已經提供,您可以訪問在適當的步驟文檔

現在,您的應用程序可以代表您的Google Apps域的用戶實例化授權的雲端硬盤服務對象(即元數據 )。 希望這會有所幫助,祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM