Chciałbym użyć Dysku Google, aby działał jak quasi-CMS dla witryny, którą robię, aby właściciele treści mogli edytować swoje treści za pomocą Dysku Google. Chciałbym użyć określonego konta użytkownika, które ma dostęp do Dysku Google (od momentu napisania tego postu, konta usług NIE MA bezpośredniego dostępu do Dysku Google) i może udostępniać dokumenty właścicielom treści.W jaki sposób mogę autoryzować dostęp do konta usługi dysku Google za pomocą konta Google bez korzystania z aplikacji Google?
Po przeczytaniu przez API i samouczki, znalazłem odpowiedź w delegacji: https://developers.google.com/drive/delegation
Moim głównym problemem w tym procesie jest to, że strona nie jest zarządzany przez Google Apps i dlatego czynności opisane w „Delegata domenie ogólna autoryzacja konta usługi "wprawia mnie w zakłopotanie - wydaje się, że powinno być możliwe obsłużenie tej delegacji bez korzystania z Google Apps, ale po wyszukaniu ustawień na Dysku Google dla mojego konkretnego konta użytkownika nie mogę znaleźć możliwość autoryzacji podszywania się.
urywek kodu używam:
static public function getService() {
$key = file_get_contents(GOOGLEAPI_KEYFILE);
$auth = new Google_AssertionCredentials(GOOGLEAPI_SERVICE_EMAIL, array(GOOGLEAPI_SCOPE), $key);
$auth->setPrn(GOOGLEAPI_IMPERSONATION);
self::$apiClient = new Google_Client();
self::$apiClient->setUseObjects(true);
self::$apiClient->setAssertionCredentials($auth);
return new Google_DriveService(self::$apiClient);
}
GOOGLEAPI_IMPERSONATION
jest specyficzny konto użytkownika i kiedy uruchomić ten kod, państwa wyjątek:
Błąd orzeźwiające token OAuth2, wiadomość: "{" error ":" access_denied "}
Ktoś oferuje jakąkolwiek pomoc? Czy nie rozumiem fundamentalnej koncepcji działania OAuth w zakresie delegacji?
Steve, dzięki za odpowiedź. Z powodzeniem skorzystałem z konta usługi, aby przesłać i przeczytać dokument bez żadnych problemów. Nie ma jednak dostępu do przesłanych dokumentów za pośrednictwem interfejsu internetowego Dokumentów Google, który jest wymagany. Powodem, dla którego działanie OAuth użytkownika nie działa, jest to, że chcę używać konta usługi Dokumentów Google jako zasobnika zawierającego dokumenty używane do zapełniania treści w witrynie - więc jeśli użytkownik Google wejdzie na tę stronę, nie ma potrzeby, aby OAuth ich konto lub cokolwiek. –
Popraw, że konta usług nie mają dostępu do interfejsu WWW. Jeśli jest to wymagane, masz kilka opcji. Po pierwsze wystarczy udostępnić dokumenty użytkownikom, którzy muszą mieć do nich dostęp. Wszystko, czego wymaga, to poznanie ich adresu e-mail.Możesz też iść w przeciwnym kierunku i autorować dokumenty na innych kontach, a następnie udostępniać je na koncie usługi. Na koniec, jeśli istnieje tylko jedno konto, które wymaga dostępu, autoryzuj używanie zwykłego oautha z dostępem w trybie offline i pozwól aplikacji działać w imieniu tego użytkownika. –
Dzięki Steve - zajrzę się tym bardziej, gdy powrócę do tego projektu –