6

Czekam na utworzenie rozszerzenia Chrome, które może (na przykład) podłączyć się do Dysku Google, wstawić element DOM gdzieś (np. "Okienko aktywności") i wyświetlić dodatkowe informacje, gdy użytkownik wybiera plik.Sonda zdarzeń interfejsu użytkownika Google Drive Frontend

Prawdopodobnie Dysk Google wykorzystuje pewien rodzaj modelu interfejsu użytkownika sterowanego zdarzeniami - np. "gdy użytkownik kliknie obraz podglądu dla tego pliku, załaduj szczegóły" działania "dla tego pliku i wyświetl je w okienku), ale wygląda na to, że nic z tego nie jest udokumentowane (i oczywiście Google zaciemnia swój skrypt JavaScript po stronie klienta) .

Czy istnieje jakiś rodzaj publicznych API dla tych zdarzeń, które można zaczepić w celu wykonania wywołania zwrotne Coś jak:

googleDriveUi.on("fileSelect", function(file) { 
 
    alert("You have selected " + file.filename); 
 
});

Zdaję sobie sprawę, mogłem osiągnąć ten sam rezultat poprzez wdrożenie mój własny interfejs użytkownika, a następnie podłączenie do Google Drive backend API. Naprawdę nie chcę tego robić, jeśli można tego uniknąć - interfejs Dysku Google jest już całkiem dobry, więc nie trzeba wymyślać koła.

Alternatywą może być słuchanie zdarzeń żądań internetowych. Na przykład widzę, że po kliknięciu pliku na Dysku, zostanie wysłane żądanie do domeny http: // {google} /appsactivity/v1.1internal/activities? {Etcetc}. Rozszerzenie może prawdopodobnie słuchać żądań skierowanych pod ten adres URL, ale prawdopodobnie Google może zmienić punkt końcowy konkretnego żądania w dowolnym momencie, więc byłoby to dość niestabilne rozwiązanie.

Wszelkie inne przemyślenia będą mile widziane.

+0

jakich informacji potrzebujesz, aby dysk nie zapewniał jeszcze Dysku? –

+0

Idealnie mógłbym wszystkie dostępne metadane - identyfikatory plików, nazwy plików, rozmiary, listy działań, wszystko. Moje tymczasowe podejście polega na słuchaniu zdarzeń kliknięcia na elementach z atrybutem [id-danych] (gdzie wartość atrybutu jest identyfikatorem pliku), a następnie użyj tego identyfikatora, aby pobrać plik przez wywołanie API do koniec. Problem z tym podejściem polega na tym, że (1) nie jest on udokumentowany, dlatego Google może zaprzestać używania [identyfikatora danych], który złamie moje rozszerzenie, oraz (2) działa tylko dla identyfikatorów plików, co oznacza, że ​​nie mam dostępu do żadnych innych metadanych bez wykonywania innego połączenia API (chociaż nie jest to duży problem). –

Odpowiedz

3

Brak publicznego interfejsu API dla zdarzeń interfejsu użytkownika końcowego. Niektóre opcje:

A. Urządzenie Google Apps Activity API jest publiczne i obsługiwane. Możesz formalnie uzyskać zmiany, wysyłając tam żądania (zakładając, że powąchałeś plik file.id przez niektóre po stronie klienta, nieudokumentowane, niestabilne środki).

B. "Właściwą drogą" jest użycie interfejsu integracji REST API Drive Open Files ("Otwórz za pomocą"), ale zależy to od użytkownika, który autoryzował/zainstalował/podłącził aplikację za pośrednictwem protokołu OAuth.

C. Zamiast pisać cały interfejs użytkownika z przodu, można po prostu użyć Google Picker API. Zapewni to pełną kontrolę nad "użytkownik wybrał file.id = xyz".

Opcje B lub C są najbliższe, jakie można uzyskać za pomocą pełnych i formalnie obsługiwanych interfejsów API.

Jeśli chcesz, aby Google dodał wymaganą funkcjonalność, możesz przejrzeć i/lub złożyć feature request for the Drive API.

+0

Doceń odpowiedź, ale tak naprawdę nie jest to, czego szukam.Miałem nadzieję, że pojawi się udokumentowany interfejs API do interakcji z elementami Dysku w DOM * bez * konieczności wykradania identyfikatorów plików i ponownego pobierania z zaplecza Dysku (co jest obecnie tym, co robię). Wygląda jednak na to, że Google tego nie udostępnił. –

+0

To niefortunne, że to ograniczenie istnieje, tak. Dodałem do mojej odpowiedzi kilka informacji o tym, jak złożyć wniosek o funkcję. –

+0

Pomimo tego, że nie był on w stanie odpowiedzieć na moje pytanie, i tak przyznałem ci nagrodę, ponieważ była to najbliżej dostępna odpowiedź :) –