1

假設我的分機已使用How can I get the current tab URL for chrome extension?中建議的方法獲取當前活動選項卡的URL,例如,確定活動選項卡是否包含可編輯的Google Doc

chrome.tabs.query({ 
    active: true, 
    lastFocusedWindow: true 
}, function (tabs) { 
    // use first tab to obtain url 
    var tab = tabs[0]; 
    var url = tab.url 
}); 

如何確定URL是否指向具有編輯權限的Google文檔?所有權和作爲受邀合作者之間的區別對於此應用程序並不重要。我只對文檔感興趣,而不是電子表格或表單。

有關什麼,我試圖發展背景下,請參閱:How to manually generate notifications to a Google Doc collaborator?

回答

1

備選答案的基礎上,Google Drive API而不是谷歌文檔的用戶界面。

在做任何此操作之前,請確保清單中的declare permissions(僅匹配看起來像docs.google.com/document/*的URL)。

下面是步驟進行了全面概述,你可以遵循:

  1. GET a file, 將返回一些元數據。您可以使用您需要的URL來提取GET請求中使用的相關ID。

  2. 使用該元數據file resource檢索permissions resource

  3. 在權限的資源,看看role屬性:這將是要麼ownerreaderwriter。如果您是reader,那麼您將不具備編輯權限,但應具有其他編輯權限。
+0

僅供參考:在您的答案中,您應該首先檢查該網址是否屬於可能包含Google文檔的網域/網頁。目前,您只是盲目地認爲當前頁面是針對Google文檔的。儘管任何一種方法都不可能將某個隨機頁面錯誤地標識爲可編輯的Google文檔,但從來不知道。 – Makyen

+0

@Makyen謝謝,這是一個好點,修正 –

+1

這似乎是一個很好的方法。我還發現了有關如何從url中提取fileid的有用討論,地址爲http://stackoverflow.com/questions/16840038/easiest-way-to-get-file-id-from-url-on-google-apps-腳本 –

1

下面是一個谷歌文檔,其中我創建了一個文檔的側視圖的一側,產生的共享鏈接,並在打開它瀏覽器,我沒有登錄到谷歌。我建議使用內容腳本插入一個「查找」功能,如果它能夠在DOM中找到「僅查看」按鈕(意味着您沒有編輯權限),將返回truefalse。您可以使內容腳本的匹配網址僅爲docs.google.com/document/*

小心:谷歌改變UI很頻繁,所以這可能不會面向未來。嘗試在兩種情況下檢查谷歌文檔的來源,尋找更多的線索。

並排視圖:在鍍鉻devtools

side by side

的源代碼:

view only button source code

+1

謝謝,諾姆和我會快速回復。這是做到這一點的一種方式,當然,但是依賴於用戶界面使我不願意將努力投入到Google明天可能會破產的事情上。我希望有人能指點我可能更穩定一點的API調用。 –

+0

感謝您的反饋。使用Google Drive API會更可靠,我會推薦這種解決方案。我還會對此進行一些調查,並回復給您 –

相關問題