Prośba o dostęp to prośba od osoby wysyłającej do osoby zatwierdzającej o przyznanie dostępu do elementu na Dysku Google.
Osoba zatwierdzająca może sprawdzać wszystkie nierozstrzygnięte propozycje dostępu do plików na Dysku i podejmować dotyczące ich działania. Oznacza to, że możesz przyspieszyć proces zatwierdzania, programowo wysyłając zapytania o propozycje dostępu, a następnie je rozstrzygając. Umożliwia też osobie zatwierdzającej wyświetlanie ofert pakietowych w formie zbiorczej.
Interfejs Google Drive API udostępnia zasób
accessproposals
, dzięki któremu możesz wyświetlać i rozwiązywać oczekujące propozycje dostępu. Metody zasobu accessproposals
działają na plikach, folderach i plikach na dysku współdzielonym, ale nie na samym dysku współdzielonym.
Poniższe terminy dotyczą wniosków o dostęp:
- Osoba przesyłająca prośbę: użytkownik, który inicjuje propozycję dostępu do elementu na Dysku.
- Odbiorca: użytkownik, który otrzyma dodatkowe uprawnienia do pliku, jeśli propozycja dostępu zostanie zaakceptowana. Często odbiorca jest taki sam jak osoba wysyłająca prośbę, ale nie zawsze.
- Osoba zatwierdzająca: użytkownik odpowiedzialny za zatwierdzanie (lub odrzucanie) propozycji dostępu. Zwykle dzieje się tak, ponieważ są właścicielami dokumentu lub mają możliwość jego udostępniania.
Wyświetlanie listy oczekujących propozycji dostępu
Aby wyświetlić listę wszystkich oczekujących propozycji dostępu do elementu na Dysku, wywołaj metodę list()
w zasobie accessproposals
i uwzględnij parametr ścieżki fileId
.
Tylko osoby zatwierdzające plik mogą wyświetlać oczekujące propozycje w pliku. Osoba zatwierdzająca to użytkownik, który ma can_approve_access_proposals
w pliku. Jeśli osoba wysyłająca prośbę nie jest osobą zatwierdzającą, zwracana jest pusta lista. Więcej informacji o capabilities
znajdziesz w artykule Omówienie możliwości plików.
Treść odpowiedzi składa się z obiektu AccessProposal
, który reprezentuje listę nierozwiązanych propozycji dostępu do pliku.
Obiekt AccessProposal
zawiera informacje o każdej propozycji, takie jak osoba wysyłająca prośbę, odbiorca i wiadomość dodana przez osobę wysyłającą prośbę. Zawiera też obiekt AccessProposalRoleAndView
, który grupuje proponowane przez osobę wysyłającą żądanie role
z view
. Ponieważ role
jest polem powtarzanym, w przypadku każdej oferty może występować wiele wartości. Na przykład propozycja może mieć obiekt AccessProposalRoleAndView
o wartościach role=reader
i view=published
, a także dodatkowy obiekt AccessProposalRoleAndView
z samą wartością role=writer
. Więcej informacji znajdziesz w sekcji Widoki.
Przekaż te parametry zapytania, aby dostosować stronicowanie lub filtrowanie propozycji dostępu:
pageToken
: token strony otrzymany z poprzedniego wywołania listy. Podaj ten token, aby pobrać następną stronę.pageSize
: maksymalna liczba propozycji dostępu do zwrócenia na stronie.
Rozwiązywanie problemów z oczekującymi propozycjami dostępu
Aby rozwiązać wszystkie oczekujące propozycje dostępu do elementu na Dysku, wywołaj metodę resolve()
w zasobie accessproposals
i uwzględnij parametry ścieżki fileId
i proposalId
.
Metoda resolve()
zawiera parametr zapytania action
, który określa działanie, jakie należy podjąć w odniesieniu do propozycji. Obiekt
Action
śledzi zmianę stanu propozycji, dzięki czemu wiemy, czy została ona zaakceptowana czy odrzucona.
Metoda resolve()
obejmuje też opcjonalne parametry zapytania role
i view
. Obsługiwane są tylko role writer
, commenter
i reader
. Jeśli nie określisz roli, domyślnie zostanie użyta wartość reader
. Dodatkowy opcjonalny parametr zapytania send_notification
umożliwia wysłanie e-maila z powiadomieniem do osoby, która wysłała prośbę, gdy oferta zostanie zaakceptowana lub odrzucona.
Podobnie jak w przypadku metody list()
, użytkownicy zatwierdzający propozycję muszą mieć can_approve_access_proposals
w pliku. Więcej informacji o capabilities
znajdziesz w artykule Omówienie możliwości plików.
Propozycje są rozstrzygane zgodnie z wzorcami wymienionymi w sekcji Scenariusze udostępniania zasobów na Dysku. Jeśli dla tego samego użytkownika jest kilka propozycji, ale z różnymi rolami, obowiązują te zasady:
- Jeśli jedna prośba zostanie zaakceptowana, a druga odrzucona, do elementu na Dysku zostanie zastosowana zaakceptowana rola.
- Jeśli obie propozycje zostaną zaakceptowane w tym samym czasie, zastosowana zostanie ta, która ma wyższy poziom uprawnień (np.
role=writer
zamiastrole=reader
). Druga propozycja dostępu zostanie usunięta z produktu.
Po wysłaniu prośby do metody resolve()
działanie udostępniania zostanie zakończone. Wartość AccessProposal
nie jest już zwracana w metodzie list()
. Gdy propozycja zostanie zaakceptowana, użytkownik musi użyć kolekcji permissions
, aby zaktualizować uprawnienia do pliku lub folderu. Więcej informacji znajdziesz w sekcji Aktualizowanie uprawnień.