Prześlij plik do Dysku Google za pomocą PHP
Streszczenie:
dysk Google to usługa przechowywania w chmurze, która pozwala użytkownikom przechowywać i udostępniać pliki. W tym artykule omówimy, jak przesyłać pliki na Dysk Google za pomocą PHP. Omówimy kroki związane z budowaniem skryptu PHP, aby przesyłać pliki na Dysk Google i szczegółowo wyjaśnić proces. Artykuł zawiera również instrukcje dotyczące utworzenia projektu Google i włączenia interfejsu API Drive, a także jak utworzyć tabelę bazy danych do przechowywania informacji o pliku.
Kluczowe punkty:
1. Instalowanie biblioteki klientów PHP: Przed rozpoczęciem będziesz musiał zainstalować bibliotekę klientów PHP na Dysku Google. Instrukcje dotyczące instalacji można znaleźć w Readme biblioteki klientów API PHP PHP.
2. Czy PHP popiera Drive Google?: Tak, Dysk Google obsługuje PHP. Zapewnia usługę API REST, która umożliwia programowe przesyłanie i zarządzanie plikami na Dysku Google za pomocą PHP.
3. Przesyłanie plików na Dysk Google: Aby przesłać pliki na Dysk Google za pomocą PHP, musisz zbudować formularz HTML, aby wybrać plik, aby przesłać. Plik zostanie przesłany na serwer lokalny, a jego informacje zostaną włożone do bazy danych. Użytkownik będzie musiał uwierzytelnić się za pomocą swojego konta Google, a plik zostanie przesłany na Dysk Google ze skryptu PHP. Status przesyłania pliku zostanie wyświetlony wraz z linkiem do wyświetlenia pliku na Dysku Google.
4. Tworzenie projektu Google i włączanie interfejsu API Drive: Aby wykonywać połączenia API na Dysku Google, będziesz potrzebować kluczy API. Możesz uzyskać te klucze, tworząc projekt Google i włączając interfejs API Drive. Instrukcje dotyczące utworzenia projektu Google i włączenia interfejsu API Drive znajdują się w artykule.
5. Tworzenie tabeli bazy danych: Aby przechowywać informacje o pliku na serwerze lokalnym, musisz utworzyć tabelę bazy danych. Artykuł zawiera instrukcje dotyczące utworzenia niezbędnej tabeli.
Pytania:
1. Jak zainstalować bibliotekę klientów PHP na Dysku Google?
Aby zainstalować bibliotekę klientów PHP na Dysku Google, możesz przestrzegać instrukcji podanych w bibliotece klientów PHP Google API Readme. Sprawdź najnowszą wersję biblioteki w repozytorium pakietów PHP.
2. Czy mogę użyć PHP do przesyłania plików na Dysk Google?
Tak, Dysk Google obsługuje PHP. Możesz użyć PHP do programowego przesyłania plików na Dysk Google, wykorzystując interfejs API dysku.
3. Jakie są kroki związane z przesyłaniem plików na Dysk Google za pomocą PHP?
Kroki związane z przesyłaniem plików na Dysk Google za pomocą PHP są następujące:
- Zbuduj formularz HTML, aby wybrać plik do przesłania.
- Prześlij plik do serwera lokalnego i wstaw jego informacje do bazy danych.
- Uwierzytelnij użytkownika za pomocą konta Google.
- Prześlij plik na dysk Google ze skryptu PHP.
- Wyświetl status przesyłania pliku i podaj link do wyświetlenia pliku na Dysku Google.
4. Jak utworzyć projekt Google i włączyć interfejs API dysku?
Aby utworzyć projekt Google i włączyć interfejs API dysku, możesz wykonać te kroki:
- Przejdź do konsoli Google API.
- Wybierz istniejący projekt lub utwórz nowy.
- Na pasku bocznym wybierz „Bibliotekę” w sekcji „API & Services”.
- Wyszukaj interfejs API Dysku Google i włącz.
- Wprowadź szczegóły aplikacji i określ autoryzowane domeny.
- Wybierz typ aplikacji jako „aplikacja internetowa” i podaj autoryzowane URI przekierowania.
- Zanotuj identyfikator klienta i sekret klientów do późniejszego użycia.
5. Czy muszę utworzyć tabelę bazy danych, aby przesyłać pliki na Dysk Google za pomocą PHP?
Tak, musisz utworzyć tabelę bazy danych, aby przechowywać informacje o pliku na serwerze lokalnym. Ta tabela zostanie użyta do wstawienia informacji o pliku przed przesłaniem ich na Dysk Google.
6. Jak mogę wyświetlić plik przesłany na dysk Google za pomocą PHP?
Po przesłaniu pliku na Dysk Google za pomocą PHP, możesz podać link do wyświetlenia pliku na Dysku Google. Link można wygenerować za pomocą unikalnego identyfikatora pliku dostarczonego przez interfejs API Drive.
7. Czy mogę przesłać wiele plików na Dysk Google za pomocą PHP?
Tak, możesz przesłać wiele plików na Dysk Google za pomocą PHP. Możesz zmodyfikować skrypt PHP, aby obsłużyć wiele przesyłania plików i przesyłać je do Dysu Google jeden po drugim.
8. Czy istnieje jakikolwiek limit rozmiaru pliku do przesyłania plików na Dysk Google za pomocą PHP?
Dysk Google ma limit rozmiaru pliku 5 TB dla poszczególnych plików. Jednak niektóre ograniczenia mogą mieć zastosowanie w oparciu o Twój plan pamięci Google Drive Plan. Sprawdź limit przechowywania konta Dysku Google.
9. Jak mogę obsłużyć błędy przesyłania plików podczas przesyłania plików na Dysk Google za pomocą PHP?
Aby obsłużyć błędy przesyłania plików podczas przesyłania plików na Dysk Google za pomocą PHP, możesz zaimplementować mechanizmy obsługi błędów w skrypcie PHP. Możesz sprawdzić popularne błędy, takie jak przekroczony limit rozmiaru pliku, nieprawidłowy format pliku lub niewystarczające miejsce do przechowywania na Dysku Google.
10. Czy mogę usunąć pliki z Dysku Google za pomocą PHP?
Tak, możesz usunąć pliki z Dysku Google za pomocą PHP. API Drive zapewnia metody programowania plików z Dysu Google. Możesz użyć tych metod w skrypcie PHP, aby usunąć pliki na podstawie twoich wymagań.
Prześlij plik do Dysku Google za pomocą PHP
Będziesz musiał zainstalować bibliotekę klientów PHP, że można to zrobić za pomocą kompozytora. Instrukcje tego można znaleźć w readme biblioteki klientów API PHP PHP. Polecam sprawdzenie najnowszego numeru wersji w repozytorium pakietów PHP
Czy PHP popiera Drive Google
Оjed
Ыы зарегистрир John. С помощю этой страницы ыы сожем оRipееделить, что запросы оRтравляете имено ыы, а не роvert. Почем это могло пRроизойиS?
Эта страница отображается тех слччаях, когда автоматическими системамgz которые наршают усовия исполззования. Страница перестанеura. До этого момента для исползования слжжж Google неоtoś.
Источником запросов может слжить ведоносное по, подкbarów. ыылку заRzy. Еarag ы исползеете общий доступ и интернет, проблема может ыть с компюююеyn с таким жж жж жесом, кк у комszczeюююе000. Обратитеunks к соем системном адинистратору. Подроlit.
Проверка по слову может также появаятьenia, еaсли ы водите сложные ззапры, оind обычно enia оиизи инenia оtoś еами, или же водите заlektora.
Prześlij plik do Dysku Google za pomocą PHP
dysk Google to silnik do przechowywania w chmurze, który pozwala użytkownikom przechowywać i udostępniać pliki. Pliki są synchronizowane między urządzeniami i można je uzyskać z dowolnego miejsca. Dysk Google ułatwia zarządzanie dokumentami bez żadnej osobistej pamięci. Możesz także zdalnie zarządzać plikami i folderami w Dysku Google za pomocą API Drive.
Drive API Umożliwia zarządzanie plikami i folderami przechowywane na Dysku Google. Możesz przesyłać i zarządzać plikami ze strony internetowej za pomocą API Drive Drive. Jeśli aplikacja internetowa wymaga umożliwienia użytkownikom dostępu do plików Dysu Google lub zarządzania nim, API Drive zapewnia prosty sposób przesyłania plików do Drive Google Programmatycznie z serwisem API REST. Ten samouczek wyjaśnia, jak to zrobić Prześlij plik do Dysku Google za pomocą PHP.
W tym przykładzie skrypt PHP zostanie zaimplementowany następujący proces Prześlij pliki na Dysk Google Z php.
- Zbuduj formularz HTML, aby wybrać plik do przesłania.
- Prześlij plik do serwera lokalnego i wstaw informacje o pliku w bazie danych.
- Uwierzytelnij użytkownika za pomocą konta Google.
- Prześlij plik na dysk Google ze skryptu PHP.
- Wyświetl status przesyłania pliku za pomocą linku do wyświetlenia pliku na Dysku Google.
Przed rozpoczęciem budowania skryptu PHP do Prześlij plik na Dysk Google Za pomocą PHP spójrz na strukturę pliku.
Google_drive_file_upload_with_php/ Config.php ├── dbconfig.indeks php ├wią.przesyłanie php ├wią.php ├── Google_Drive_Sync.php ├wiąt Googledriveapi.klasa.php └── css/ Styl └wią.CSS
Utwórz projekt Google i włącz interfejs API Drive
Projekt Google jest zobowiązany do uzyskania klawiszy API, które zostaną użyte do wykonywania połączeń API na Dysku Google. Jeśli masz już istniejącą aplikację Google, można z niej użyć kluczy API. Po prostu upewnij się, że interfejs API Dysku Google jest włączony w tym istniejącym projekcie Google. Jeśli nie masz’T Wszelkie aplikacje Google, wykonaj poniższe kroki, aby zarejestrować aplikację w konsoli Google Developers i uzyskać klucze API.
- Przejdź do konsoli Google API.
- Wybierz istniejący projekt z listy projektów lub kliknij NOWY PROJEKT Aby stworzyć nowy projekt:
- Wpisz Nazwa Projektu.
- Identyfikator projektu zostanie utworzony automatycznie w polu nazwy projektu. (Opcjonalnie) Możesz zmienić ten identyfikator projektu według Edytować link, ale powinien być wyjątkowy na całym świecie.
- Kliknij TWORZYĆ przycisk.
- Na pasku bocznym wybierz Biblioteka pod API i usługi Sekcja.
- Wyszukaj usługę API Drive Google na liście API i wybierz API Dysku Google.
- Kliknij WŁĄCZAĆ przycisk, aby udostępnić bibliotekę API Dysku Google.
- Wprowadź nazwę aplikacji.
- Wybierz wiadomość e -mail pomocy technicznej.
- Określić Upoważnione domeny które będą mogły uwierzytelnić za pomocą OAuth.
- Kliknij Ratować przycisk.
- w Typ aplikacji sekcja, wybierz Aplikacja internetowa.
- w Upoważnione przekierowanie URI Pole, podaj adres URL przekierowania.
- Kliknij Tworzyć przycisk.
Okno dialogowe pojawi się ze szczegółami klienta OAuth, zwróć uwagę na identyfikator klienta i sekret klienta do późniejszego użycia w skrypcie. Ten identyfikator klienta i sekret klientów umożliwiają dostęp do interfejsu API Dysku Google.
Zauważ, że: Identyfikator klienta I Sekret klienta należy określić w momencie połączenia API Drive Drive. Ponadto upoważnione URI przekierowania należy dopasować do adresu URL przekierowania określonego w skrypcie.
Utwórz tabelę bazy danych
W bazie danych wymagana jest tabela do przechowywania informacji o pliku na serwerze lokalnym. Poniższa SQL tworzy tabelę Plików Drive_Files z niektórymi podstawowymi pola w bazie danych MySQL.
TWORZYĆ TABELA `Drive_files` ( `Id` int(11) NIE ZERO Auto_increment, `plik_name` varchar(255) ZESTAWIĆ utf8_unicode_ci DOMYŚLNY ZERO, `Google_Drive_file_id` varchar(255) ZESTAWIĆ utf8_unicode_ci DOMYŚLNY ZERO, `` stworzony ' Datetime NIE ZERO DOMYŚLNY Current_timestamp(), PODSTAWOWY KLUCZ (`Id`)) SILNIK=Innodb DOMYŚLNY Znak= UTF8 ZESTAWIĆ= utf8_unicode_ci;
Biblioteka PHP Drive Drive Drive
Google zapewnia bibliotekę klientów PHP do wykonywania połączeń API z napędem, ale zawiera wiele dodatkowych usług, które zawierają ogromną liczbę plików i są duży rozmiar. Aby proces był prosty, zbudujemy niestandardową bibliotekę, aby obsłużyć połączenia API Drive Google z PHP.
Nasz Biblioteka API Google Pomaga uwierzytelnianie za pomocą konta Google i uzyskiwać dostęp do interfejsu API Drive za pomocą API REST za pomocą PHP Curl. Ta niestandardowa biblioteka PHP będzie używana Dysk Google V3 API Aby obsłużyć proces przesyłania pliku.
- GetAccessToken () – Przyprzyj tokenowi dostępu z Google OAuth 2 API za pomocą kodu uwierzytelniania.
- UploadFileTodrive () – Wyślij plik na dysk Google w celu przesłania za pomocą API REST.
- AktualizacjaFileMeta () – Zaktualizuj metadane przesłanego pliku na Dysku Google.
/**
*
* Ta klasa obsługi API Dysku Google to niestandardowa biblioteka PHP do obsługi połączeń API Dysu Google.
*
* @Class Googledriveapi
* @Author Codexworld
* @link http: // www.Codexworld.com
* @wersja 1.0
*/
klasa GoogledRiveapi <
const OAuth2_Token_Uri = 'https: // oauth2.Googleapis.com/token ';
const Drive_file_Upload_Uri = „https: // www.Googleapis.com/upload/drib/v3/pliki ';
const Drive_file_Meta_Uri = „https: // www.Googleapis.com/drive/v3/pliki/';
funkcjonować __skonstruować($ params = array ()) <
Jeśli (liczyć($ params)> 0) <
$ to->Zainicjuj($ params);
>
>
funkcjonować Zainicjuj($ params = array ()) <
Jeśli (liczyć($ params)> 0) <
dla każdego ($ params Jak $ klucz => $ val) <
if (isset ($ to->$ klucz)) <
$ to->$ klucz = $ val;
>
>
>
>
funkcja publiczna GetAccesstoken($ client_id, $ Redirect_Uri, $ client_secret, $ kod) <
$ curlpost = 'client_id =' ' . $ client_id . „& Redirect_Uri =” . $ Redirect_Uri . '& Client_Secret =' ' . $ client_secret . „& Code =”. $ kod . „& Grant_type = autoryzacja_kodowa”;
$ ch = curl_init();
curl_setopt($ ch, Curlopt_url, samego siebie::OAuth2_Token_Uri);
curl_setopt($ ch, Curlopt_returntransfer, 1);
curl_setopt($ ch, Curlopt_post, 1);
curl_setopt($ ch, Curlopt_ssl_verifypeer, FAŁSZ);
curl_setopt($ ch, Curlopt_postfields, $ curlpost);
$ Data = JSON_DECODE(curl_exec($ ch), PRAWDA);
$ http_code = curl_getinfo($ ch,Curlinfo_http_code);
Jeśli ($ http_code != 200) <
$ error_msg = „Nie udało się odebrać tokena dostępu”;
Jeśli (curl_errno($ ch)) <
$ error_msg = curl_error($ ch);
>
Rzuć nowy Wyjątek('Błąd '.$ http_code.„:”.$ error_msg);
>
powrót $ Data;
>
funkcja publiczna UploadFileTodrive($ access_Token, $ plik_content, $ mime_type) <
$ apiurl = samego siebie::Drive_file_Upload_Uri . '?EmoLDype = Media ';
$ ch = curl_init();
curl_setopt($ ch, Curlopt_url, $ apiurl);
curl_setopt($ ch, Curlopt_returntransfer, 1);
curl_setopt($ ch, Curlopt_post, 1);
curl_setopt($ ch, Curlopt_ssl_verifypeer, FAŁSZ);
curl_setopt($ ch, Curlopt_httpheader, szyk('Typ zawartości: '.$ mime_type, „Autoria: nosiciel”. $ access_Token));
curl_setopt($ ch, Curlopt_postfields, $ plik_content);
$ Data = JSON_DECODE(curl_exec($ ch), PRAWDA);
$ http_code = curl_getinfo($ ch,Curlinfo_http_code);
Jeśli ($ http_code != 200) <
$ error_msg = „Nie udało się przesyłać pliku na Dysk Google”;
Jeśli (curl_errno($ ch)) <
$ error_msg = curl_error($ ch);
>
Rzuć nowy Wyjątek('Błąd '.$ http_code.„:”.$ error_msg);
>
powrót $ Data[[['ID'];
>
funkcja publiczna AktualizacjaFileMeta($ access_Token, $ file_id, $ file_meatadata) <
$ apiurl = samego siebie::Drive_file_Meta_Uri . $ file_id;
$ ch = curl_init();
curl_setopt($ ch, Curlopt_url, $ apiurl);
curl_setopt($ ch, Curlopt_returntransfer, 1);
curl_setopt($ ch, Curlopt_post, 1);
curl_setopt($ ch, Curlopt_ssl_verifypeer, FAŁSZ);
curl_setopt($ ch, Curlopt_httpheader, szyk(„Typ treści: aplikacja/JSON”, „Autoria: nosiciel”. $ access_Token));
curl_setopt($ ch, Curlopt_customrequest, 'SKRAWEK');
curl_setopt($ ch, Curlopt_postfields, JSON_ENCODE($ file_meatadata));
$ Data = JSON_DECODE(curl_exec($ ch), PRAWDA);
$ http_code = curl_getinfo($ ch,Curlinfo_http_code);
Jeśli ($ http_code != 200) <
$ error_msg = „Nie udało się zaktualizować metadanych plików”;
Jeśli (curl_errno($ ch)) <
$ error_msg = curl_error($ ch);
>
Rzuć nowy Wyjątek('Błąd '.$ http_code.„:”.$ error_msg);
>
powrót $ Data;
>
>
?>
Konfiguracja bazy danych i API (konfiguracja.php)
W konfiguracji.Plik PHP, ustawienia bazy danych i zmienne konfiguracji API Google są zdefiniowane.
Stałe bazy danych:
- Db_host – określ host bazy danych.
- DB_USERName – Określ nazwę użytkownika bazy danych.
- DB_PASSWORD – Określ hasło do bazy danych.
- Db_name – określ nazwę bazy danych.
Google API stałe:
- Google_Client_ID – Podaj identyfikator klienta Projektu Google.
- Google_Client_Secret – Określ sekret klienta Project Project.
- Google_oauth_scope – Określ zakres OAuth dla uwierzytelniania Google (ustaw na https: // www.Googleapis.com/auth/dysk).
- Redirect_Uri – Określ adres URL zwrotu oddzwonienia.
Google OAuth URL:
- $ GoogleoAuthurl – URL, który pozwala użytkownikowi uwierzytelnić się za pomocą konta Google.
// Konfiguracja bazy danych
definiować(„Db_host”, „Mysql_database_host”);
definiować(„Db_username”, „MySQL_DATABASE_USERName”);
definiować(„Db_password”, „MySQL_DATABASE_PASSWORD”);
definiować(„Nazwa db_name”, „MySQL_DATABASE_NAME”);
// Konfiguracja API Google
definiować(„Google_client_id”, „Google_project_client_id”);
definiować(„Google_Client_Secret”, „Google_project_client_secret”);
definiować(„Google_oauth_scope”, „https: // www.Googleapis.com/auth/drive ');
definiować(„Redirect_uri”, „https: // www.przykład.com/Google_Drive_Sync.php ');
// Rozpocznij sesję
Jeśli(!session_id()) session_start();
// Google Oauth URL
$ GoogleoAuthurl = „https: // konta.Google.com/o/oauth2/auth?zakres = ' . Urlencode(Google_oauth_scope) . „& Redirect_Uri =” . Redirect_uri . '& response_type = kod i client_id =' ' . Google_Client_ID . „& Access_Type = online”;
?>
Zauważ, że: identyfikator klienta i sekret klienta można znaleźć na stronie Google API Manager projektu konsoli API.
Połączenie bazy danych (dbconfig.php)
DBConfig.Plik PHP służy do podłączenia i wyboru bazy danych MySQL za pomocą PHP.
// Dołącz plik konfiguracyjny
wymagają raz 'Config.php ';
// Utwórz połączenie bazy danych
$ db = nowy Mysqli(Db_host, Db_username, Db_password, Db_name);
// Sprawdź połączenie
Jeśli ($ db->connect_error) <
umierać("Połączenie nieudane: " . $ db->connect_error);
>
Formularz przesyłania pliku (indeks.php)
Utwórz formularz HTML, aby wybrać plik do przesłania dowolnego typu plików (.jpg, .JPEG, .png, .PDF, .XLSX, .CSV itp.).
- Atrybut enctype musi być zdefiniowany w < form >znacznik, aby umożliwić przesłanie pliku.
- Po przesłaniu dane plików są publikowane do skryptu po stronie serwera (prześlij.php) do dalszego przetwarzania.
// Dołącz plik konfiguracyjny
obejmować_once 'Config.php ';
Status $ = $ statusmsg = '';
Jeśli(!pusty($ _Session[[[„Status_response”])) <
$ status_response = $ _Session[[[„Status_response”];
Status $ = $ status_response[[['status'];
$ statusmsg = $ status_response[[[„status_msg”];
nieoprawny($ _Session[[[„Status_response”]);
>
?> Jeśli(!pusty($ statusmsg)) ?> div klasa=„Alert alarm- Echo Status $; ?>"> Echo $ statusmsg; ?> div> > ?> div klasa=„Col-MD-12”> formularz metoda="post" działanie="wgrywać.php " klasa="formularz" Enctype=„Multipart/Form-Data”> div klasa=„Grupa formularza”> etykieta>Etykieta pliku> wejście typ="plik" nazwa="plik" klasa=„Kontrola formy”> div> div klasa=„Grupa formularza”> wejście typ="składać" klasa=„BTN-PRIMARY” nazwa="składać" wartość="Wgrywać"/> div> formularz> div>
Przechowuj plik w bazie danych (prześlij.php)
Przesyłanie.Plik PHP obsługuje przesyłanie pliku w PHP i proces wprowadzania danych do bazy danych MySQL.
- Uzyskaj informacje o pliku z pola wejściowego za pomocą Php $ _files zmienny.
- Sprawdź, czy pola obowiązkowe są puste.
- Prześlij plik do serwera lokalnego i wstaw dane plików w bazie danych za pomocą PHP i MySQL.
- Przekieruj użytkownika do adresu URL OAuth w celu uwierzytelnienia za pomocą konta Google.
// Uwzględnij plik konfiguracyjny bazy danych
wymagają raz „dbconfig.php ';
$ statusmsg = $ Valerr = '';
Status $ = 'niebezpieczeństwo';
// Jeśli formularz jest przesłany
if (isset ($ _Post[[['składać'])) <
// sprawdź pola wejściowe formularza
if (puste ($ _Files[[["plik"] ["nazwa"])) <
$ Valerr .= „Wybierz plik do przesłania.
';
>
// Sprawdź, czy wejścia użytkowników są puste
if (puste ($ Valerr)) <
$ Targetdir = „przesyłanie/”;
$ nazwa pliku = Basename($ _Files[[["plik"] ["nazwa"]);
$ TargetFilePath = $ Targetdir . $ nazwa pliku;
// Prześlij plik do serwera lokalnego
Jeśli(Move_uploaded_file($ _Files[[["plik"] [„TMP_NAME”], $ TargetFilePath)) <
// Włóż dane do bazy danych
$ sqlq = „Włóż wartości Drive_files (File_name, utworzone) (?,TERAZ())";
$ stmt = $ db->przygotowywać($ sqlq);
$ stmt->bind_param("S", $ db_file_name);
$ db_file_name = $ nazwa pliku;
$ wstaw = $ stmt->wykonać();
Jeśli($ wstaw) <
$ file_id = $ stmt->insert_id;
// przechowuj identyfikator referencyjny pliku w sesji
$ _Session[[[„last_file_id”] = $ file_id;
nagłówek("Lokalizacja: $ GoogleoAuthurl");
Wyjście();
> inaczej <
$ statusmsg = - Coś poszło nie tak, spróbuj ponownie po pewnym czasie.';
>
> inaczej <
$ statusmsg = „Przesłanie pliku nie powiodło się, spróbuj ponownie po pewnym czasie.';
>
> inaczej <
$ statusmsg = 'Proszę wypełnić wszystkie obowiązkowe pola:
'
.przycinać($ Valerr, '
');
>
> inaczej <
$ statusmsg = „Zgłoszenie formularza nie powiodło się!';
>
$ _Session[[[„Status_response”] = tablica ('status' => Status $, „status_msg” => $ statusmsg);
nagłówek(„Lokalizacja: indeks.php ");
Wyjście();
?>
Prześlij plik do Dysku Google (Google_Drive_Sync.php)
Ten skrypt jest ustawiony jako przekierowanie URI w konfiguracji Google API. Oznacza to, że po uwierzytelnieniu za pomocą konta Google użytkownik zostanie przekierowany do tego skryptu, który obsługuje proces przesyłania pliku Dysku Google za pomocą API REST za pomocą PHP.
- Uzyskaj kod OAuth z ciągu zapytania URL za pomocą Php $ _get zmienny.
- Uwzględnij i zainicjuj klasę obsługi API Drive Drive.
- Uzyskaj identyfikator referencyjny pliku lokalnej bazy danych z sesji.
- Pobierz informacje o pliku z bazy danych na podstawie identyfikatora referencyjnego.
- Pobrać plik z serwera i zdefiniuj cały plik w ciągu za pomocą file_get_contents () Funkcja w PHP.
- Uzyskaj typ MIME pliku za pomocą MIME_CONTENT_TYPE () Funkcja w PHP.
- Uzyskaj token dostępu za pomocą kodu uwierzytelniającego za pomocą funkcji getAccessToken ().
- Wyślij i prześlij plik do Dysku Google za pomocą funkcji ExloadFileTodrive ().
- Zaktualizuj meta dane na dysku Google za pomocą funkcji aktualizacjiFileMeta ().
- Zaktualizuj identyfikator referencyjny pliku Dysku Google w bazie danych.
- Wyświetl status przesyłania pliku za pomocą linku dostępu do pliku Dysu Google.
// Uwzględnij klasę obsługi API Dysku Google
obejmować_once „Googledriveapi.klasa.php ';
// Uwzględnij plik konfiguracyjny bazy danych
wymagają raz „dbconfig.php ';
$ statusmsg = '';
Status $ = 'niebezpieczeństwo';
if (isset ($ _Get[[['kod'])) <
// Zainicjuj klasę API Dysku Google
$ Googledriveapi = nowy GoogledRiveapi();
// Pobierz identyfikator referencyjny pliku z sesji
$ file_id = $ _Session[[[„last_file_id”];
Jeśli(!pusty($ file_id)) <
// Pobierz szczegóły pliku z bazy danych
$ sqlq = „Wybierz * z Drive_files gdzie style =" Color: #007700 ">;
$ stmt = $ db->przygotowywać($ sqlq);
$ stmt->bind_param("I", $ db_file_id);
$ db_file_id = $ file_id;
$ stmt->wykonać();
Wynik $ = $ stmt->get_result();
$ fequedata = Wynik $->fetch_assoc();
Jeśli(!pusty($ fequedata)) <
$ nazwa_pliku = $ fequedata[[['Nazwa pliku'];
$ Target_file = „przesyła/”.$ nazwa_pliku;
$ plik_content = file_get_contents($ Target_file);
$ mime_type = MIME_CONTENT_TYPE($ Target_file);
// Zdobądź token dostępu
Jeśli(!pusty($ _Session[[[„Google_Access_Token”])) <
$ access_Token = $ _Session[[[„Google_Access_Token”];
> inaczej <
$ Data = $ Googledriveapi->GetAccesstoken(Google_Client_ID, Redirect_uri, Google_Client_Secret, $ _Get[[['kod']);
$ access_Token = $ Data[[[„Access_Token”];
$ _Session[[[„Google_Access_Token”] = $ access_Token;
>
Jeśli(!pusty($ access_Token)) <
próbować <
// Prześlij plik na Dysk Google
$ drive_file_id = $ Googledriveapi->UploadFileTodrive($ access_Token, $ plik_content, $ mime_type);
Jeśli($ drive_file_id) <
$ file_meta = tablica (
'nazwa' => Basename($ nazwa_pliku)
);
// zaktualizuj metadane pliku na Dysku Google
$ drive_file_ meta = $ Googledriveapi->AktualizacjaFileMeta($ access_Token, $ drive_file_id, $ file_meta);
Jeśli($ drive_file_meta) <
// zaktualizuj referencję plików Dysu Google w bazie danych
$ sqlq = „Aktualizacja Drive_files Ustaw Google_Drive_file_id =? Gdzie style = "color: #007700">;
$ stmt = $ db->przygotowywać($ sqlq);
$ stmt->bind_param("si", $ db_drive_file_id, $ db_file_id);
$ db_drive_file_id = $ drive_file_id;
$ db_file_id = $ file_id;
Aktualizacja $ = $ stmt->wykonać();
nieoprawny($ _Session[[[„last_file_id”]);
nieoprawny($ _Session[[[„Google_Access_Token”]);
Status $ = 'powodzenie';
$ statusmsg = 'Plik został pomyślnie przesłany do Dysu Google!
'
;
$ statusmsg .= '.
$ drive_file_meta[[['ID'].'"targ =" _ puste ">'.$ drive_file_meta[[['nazwa'].'';
>
>
> Catch (Wyjątek $ e) <
$ statusmsg = $ e->GetMessage();
>
> inaczej <
$ statusmsg = „Nie udało się pobrać tokenu dostępu!';
>
> inaczej <
$ statusmsg = „Nie znaleziono danych plików!';
>
> inaczej <
$ statusmsg = „Nie znaleziono odniesienia do pliku!';
>
$ _Session[[[„Status_response”] = tablica ('status' => Status $, „status_msg” => $ statusmsg);
nagłówek(„Lokalizacja: indeks.php ");
Wyjście();
>
?>
Lista kontrolna do testowania:
Weryfikacja aplikacji Google:
Google wymaga weryfikacji aplikacji, aby użyć interfejsu API dysku. Musisz złożyć wniosek o weryfikację, aby Google Project.
W trybie rozwoju możesz go przetestować, dodając użytkowników testowych na ekranie zgody OAuth w aplikacji Google.
Na stronie poświadczeń klienta OAuth kliknij Ekran zgody OAuth połączyć.
Wniosek
Prześlij pliki do Dysku Google z API REST jest bardzo przydatne, gdy chcesz dynamicznie przesyłać obrazy lub dokumentować pliki na Dysk Google z witryny. PHP Curl Funkcje pomagają wywołać interfejs API REST w celu uzyskania dostępu do interfejsu API Dysku Google ze skryptu. Nie tylko przesyłanie plików, ale także możesz tworzyć foldery, wyświetlić/aktualizować/usuwać pliki za pomocą API Drive Google i PHP. Jeśli chcesz zapisać Scape na serwerze, pliki można przesłać na Dysk Google, a odniesienie można użyć do dostępu do plików z Dysku Google.
Czy chcesz uzyskać pomoc implementacyjną lub zmodyfikować lub ulepszyć funkcjonalność tego skryptu? Kliknij tutaj, aby przesłać żądanie usługi
Jeśli masz jakieś pytania dotyczące tego skryptu, prześlij go do naszej społeczności QA – zadaj pytanie
Proste, jak zintegrować interfejs API Dysku Google z PHP. 2
Czy chcesz zintegrować interfejs API Drive z PHP? W tym samouczku przyjrzymy się, jak po prostu zintegrować interfejs API Drive z PHP. Jeśli chcesz zintegrować swój skrypt PHP z konto Drive Drive’T musi być trudne. W rzeczywistości używa się biblioteki klientów PHP, może to być dość cieśnina. W tym poście przyjrzymy się, jak utworzyć prosty skrypt zaprojektowany do uruchamiania na serwerze. Nie ten kod nie będzie uruchomiony jako aplikacja internetowa. To tylko skrypt konsoli.
- 1 Utwórz zainstalowane poświadczenia aplikacji
- 2 kompozytor
- 3 autoryzacja
- 4 API Dysku Google z PHP
- 5. Wniosek
Utwórz zainstalowane poświadczenia aplikacji
Pierwszą rzeczą, której będziesz potrzebować, jest stworzenie wireetialów.plik JSON. Można to utworzyć w Google Cloud Console, pamiętaj o tworzeniu natywnych poświadczeń.
Kompozytor
Będziesz musiał zainstalować bibliotekę klientów PHP, że można to zrobić za pomocą kompozytora. Instrukcje tego można znaleźć w readme biblioteki klientów API PHP PHP. Polecam sprawdzenie najnowszego numeru wersji w repozytorium pakietów PHP
kompozytor wymaga Google/Apiclient:^2.12.1
Upoważnienie
Ten kod jest zaprojektowany do przechowywania autoryzacji użytkownika w pliku o nazwie token.JSON. Po autoryzowaniu aplikacji, gdy zostanie tam przechowywany token odświeżający. Następnie, gdy aplikacja uruchomi się ponownie, będzie w stanie użyć tokenu odświeżania, aby poprosić o nowy token dostępu, aby uzyskać dostęp do konta Dysku Google.
Ostrzeżenie tokeny odświeżania wygasną po siedmiu dniach, gdy twój projekt zostanie ustawiony na testowanie w Google Cloud Console. Przejdź do ekranu OAuth i ustaw go na produkcję, a token odświeżania przestanie wygasać.
https: // programiści.Google.com/tożsamość/protokoły/oauth2#wygaśnięcie
Sekcja kodu, która obsługuje dla nas autoryzację, jest następująca
$ authurl = $ client-> createAuthUrl ();
printf („Otwórz następujący link w przeglądarce: \ n%s \ n”, $ authurl);
Wydrukuj „Wprowadź kod weryfikacyjny:”;
$ authCode = Trim (zwłoki (Stdin));
// wymieniaj kod autoryzacji tokena dostępu.
$ AccessToken = $ Client-> fetchAccessTokenWithAuthCode ($ AuthCode);
$ client-> setAccessToken ($ accessToken);
Skopiuj link autoryzacji i umieść go w dowolnej przeglądarce internetowej. Upoważnij wniosek. W oknie przeglądarki zobaczysz błąd 400, gdy będzie to kompletne, zignoruj. Wynika to z usunięcia OOB. Jeśli spojrzysz na pasek adresu URL w tym zwróconym ciągu, to kod. http: // localhost/?kod =4/0AX4XFWGU3P6QQHEOGZ7NITCLTYDT3TF_BV-A1KI4UOEM0ZPHIXRPD8TENLUXTA-SKFLLA& Scope = https: // www.Googleapis.com/auth/drive.czytamy, to ten kod dodajesz do swojej aplikacji. Możesz użyć kodu tylko raz.
Następnie kod przyniesie token dostępu z tym kodem autoryzacji.
Korzystając z następującego kodu przechowywamy token zwrócony do tokena.plik JSON do późniejszego użycia
// Zapisz token na pliku.
Jeśli (!plik_exists (dirname ($ tokenpath))) mkdir (dirname ($ tokenpath), 0700, true);
>
file_put_contents ($ tokenpath, json_encode ($ client-> getAccessToken ()));
Ostrzeżenie tokeny odświeżania wygasną po siedmiu dniach, gdy twój projekt zostanie ustawiony na testowanie w Google Cloud Console. Przejdź do ekranu OAuth i ustaw go na produkcję, a token odświeżania przestanie wygasać.
https: // programiści.Google.com/tożsamość/protokoły/oauth2#wygaśnięcie
API Dysku Google z PHP
Teraz, gdy Twoja aplikacja jest autoryzowana, możesz zadzwonić do interfejsu API Dysku Google. Pamiętaj tylko, że każda metoda ma jedno lub więcej zasięczeń, które są wymagane, aby uzyskać dostęp do tej metody. Można znaleźć zakres potrzebny w dokumentacji dla każdej metody. Na przykład plik.Lista pokaże, z którego zakresu musisz poprosić o autoryzację. W tym skrypcie proszę tylko o odczytanie tylko zakresu, co oznacza, że jeśli spróbujesz zrobić plik.Utwórz, że nie zadziała. Jeśli zmienisz zakres w tym skrypcie, pamiętaj o usunięciu tokena.plik JSON, aby skrypt ponownie żądał autoryzacji użytkownika.
wymagać __Dir__ . „/sprzedawca/autoload.php ‘;
if (php_sapi_name () != „CLI”) Rzuć nowy wyjątek („Ta aplikacja musi być uruchomiona w wierszu poleceń.’);
>
Użyj Google \ Client;
Użyj Google \ Service \ Drive;
/** * Zwraca upoważniony klient API. * @powrót Klient Upoważniony obiekt klienta */ funkcja getClient ()
$ client = nowy klient ();
$ client-> setApplicationName („Drive Drive API PHP QuickStart”);
$ client-> setscopes (‘https: // www.Googleapis.com/auth/drive.tylko czytać’);
$ client-> setauthconfig (‘c: \ youtube \ dev \ fomentials.JSON ‘);
$ client-> setAccessType („offline”);
$ client-> setReReCturi (“http: // 127.0.0.1 ”);
$ client-> setPrompt („Wybierz_Account zgoda”);
// załaduj wcześniej autoryzowany token z pliku, jeśli istnieje.
// token pliku.JSON przechowuje dostęp użytkownika i odświeża tokeny i jest
// utworzone automatycznie po zakończeniu przepływu autoryzacji dla pierwszego
// czas.
$ tokenpath = ‘token.JSON ‘;
if (plik_exists ($ tokenPath)) $ AccessToken = json_decode (file_get_contents ($ tokenPath), true);
$ client-> setAccessToken ($ accessToken);
>
// Jeśli nie ma wcześniejszego tokena lub wygasł.
if ($ client-> isAccessTokenExpired ()) // Jeśli to możliwe, odśwież token.
if ($ client-> getRefreshToken ()) $ client-> fetchAccessTokenWithrefreshToken ($ client-> getRefreshToken ());
> else // żądaj autoryzacji od użytkownika.
$ authurl = $ client-> createAuthUrl ();
printf („Otwórz następujący link w przeglądarce: \ n%s \ n”, $ authurl);
Wydrukuj „Wprowadź kod weryfikacyjny:”;
$ authCode = Trim (zwłoki (Stdin));
// wymieniaj kod autoryzacji tokena dostępu.
$ AccessToken = $ Client-> fetchAccessTokenWithAuthCode ($ AuthCode);
$ client-> setAccessToken ($ accessToken);
// Sprawdź, czy wystąpił błąd.
if (array_key_exists („error”, $ AccessToken)) Rzuć nowy wyjątek (dołącz (‘,’, $ accesstoken));
>
>
// Zapisz token na pliku.
Jeśli (!plik_exists (dirname ($ tokenpath))) mkdir (dirname ($ tokenpath), 0700, true);
>
file_put_contents ($ tokenpath, json_encode ($ client-> getAccessToken ()));
>
zwrot $ klienta;
>
// Pobierz klienta API i skonstruuj obiekt serwisowy.
$ client = getClient ();
$ service = new Drive ($ client);
// Wydrukuj kolejne 10 zdarzeń w kalendarzu użytkownika.
próbować
$ optparams = tablica (
„Pagesize” => 10,
„Fields” => ”(identyfikator, nazwa, mimetype)”,
„q ‘=>’ mimeType =” aplikacja/vnd.aplikacje Google.folder „i„ root ”w rodzicach,
„Orderby” => „Nazwa”
);
$ wyniki = $ service-> pliki-> list ListFiles ($ optparams);
$ files = $ wyniki-> getFiles ();
if (puste ($ pliki)) wydrukuj „nie znaleziono plików.\N”;
> else drukuj „pliki: \ n”;
foreach ($ pliki jako $ plik) $ id = $ plik-> id;
printf (“%s-(%s)-(%s) \ n”, $ file-> getId (), $ plik-> getName (), $ plik-> getMimeType ());
>
>
>
Catch (wyjątek $ e) // TODO (programista) – Obsługuj błąd odpowiednio echem „komunikat:” .$ e-> getMessage ();
>
Wniosek
Upoważnienie skryptu PHP do połączenia z interfejsem API Dysu Google jest dość proste, gdy masz kod. Korzystanie z biblioteki klientów PHP i pozwalając jej obsługiwać całą autoryzację dla nas, czyni nasze życie.
Pamiętaj, aby utworzyć zainstalowane poświadczenia aplikacji, aby uruchomić ten skrypt. Mam film, który pokazuje, jak. Pamiętaj tylko, aby włączyć interfejs API Dysku Google w bibliotece
Powiązane posty:
- Proste, jak zintegrować PHP z API administratora Google Analytics.
- Google API Auth Simple
- Proste, jak przesyłać plik na dysk Google z Go Lang.
- Uwierzytelnianie Google z Curl
Przenoszenie statycznej strony internetowej z Dysku Google do środowiska przyjaznego PHP?
Dysk Google sprawia, że na żywo jest dość łatwe, ponieważ mogę tworzyć pliki lokalnie i dba o synchronizację.
Co poleciłbyś spojrzeć/szukać?
19.9K 6 6 Złote odznaki 51 51 Srebrne odznaki 99 99 brązowe odznaki
zapytał 8 maja 2014 o 17:20
1135 10 10 srebrnych odznak 19 19 brązowych odznaki
Prosty zapytanie Google „Drive Drive PHP” prowadzi do tego dokumentu Google: Wsparcie.Google.com/drive/odpowiedź/2881970?hl = en, który wyraźnie stwierdza: bez php. Może być konieczne popracowanie nad definicją „całego”
9 maja 2014 o 0:48
To tylko nie jest moje pytanie. To trochę jasne.. Potrzebuję alternatywy
9 maja 2014 o 5:48
3 Answers 3
Po pierwsze, skrypty po stronie serwera nie jest dozwolone na dysku. Chociaż w Google możesz użyć Google App Engine do celów scenariuszy. Obecnie jest tutaj obsługiwanych o wiele więcej języków, takich jak Go, PHP, Python i Java. Możesz nauczyć się silnika App.
Po drugie, aby uzyskać lepsze wrażenia hostingowe, kupić przestrzeń serwerową. Do celów uczenia się możesz zarejestrować się w wielu bezpłatnych usługach hostingowych. Później przejdź do wersji płatnej.
25.3K 15 15 Złote odznaki 91 91 Srebrne odznaki 178 178 brązowe odznaki
odpowiedział 8 maja 2014 o 17:31
Cprakashagr Cprakashagr
751 11 11 Srebrne odznaki 28 28 brązowe odznaki
Dysk Google nie jest stworzony z powodu tego, co próbujesz zrobić.
Możesz zajrzeć do Google Cloud lub Google App Engine.
odpowiedział 8 maja 2014 o 17:24
4 843 9 9 złote odznaki 50 50 Srebrnych odznak 93 93 Brązowe odznaki
Google Cloud jest dla mnie nowy.. Czy Google Cloud Host witryny mogą być jak Dysk Google?
8 maja 2014 o 17:30
Dysk Google nie może hostować stron internetowych. Dokumenty i inne treści statyczne, ale nic dynamicznego. Naprawdę powinieneś iść z firmą hostingową. Wyszukaj udostępnianie hostingu To jest to, czego potrzebujesz.
8 maja 2014 o 17:33
NIE.. Dysk Google może również hostować całą witrynę w folderze. Ale powinno być statyczne. Nie dynamiczne, jak mówisz i ograniczone z rozmiarem napędu
8 maja 2014 o 17:38
Dysk Google po prostu nie pozwala na php. Jest to określone [w dokumentacji] (https: // obsługa.Google.com/drive/odpowiedź/2881970?hl = en), który jest pierwszym linkiem, gdy Google „Dysk Google PHP”
Aby uruchomić kod w plikach hostowanych w Google, musisz użyć silnika aplikacji Google. Uruchamia PHP, Java, Python, Go.
Ale może nie być tym, czego szukasz. Korzystanie z klasycznej strony internetowej może być lepszym podejściem
odpowiedział 8 maja 2014 o 17:24
19.9K 6 6 Złote odznaki 51 51 Srebrne odznaki 99 99 brązowe odznaki
Mam swoją witrynę w Dysku Google na tymczasowe. Czy możesz mi się podać, jak mogę zintegrować się z Drive?
8 maja 2014 o 17:28
Może być lepiej, gdybyś poprosił mnie o wyszukiwanie „API Google” (tego potrzebowałem), a nie poszedłeś do tego linku i skrócenie go.
8 maja 2014 o 17:41
THX za wdrożenie dokładnej odpowiedzi na bezczelny komentarz 🙂 Potrzebujesz zwykłego hostingu witryn internetowych. Próba trzymania się Dysku Google zajmie Ci więcej czasu. Również z zasady: proszenie o „jak to zrobić” bez zbadania referencji, nie jest uważane za przyjazne dla społeczności. Zakładając, że tak, korzystne byłoby stwierdzenie czegoś w stylu „spojrzałem na link, link, link, ale nadal nie znam/nie rozumiem” itp. Po prostu zapytanie stwarza wrażenie freeloadera. Przeczytaj etykietę witryny, aby uzyskać więcej informacji
9 maja 2014 o 0:44
W dół nie jest ja. Zanim poproś mnie o zobaczenie zasady witryny, zobacz moją reputację. Downvote wymaga 125 reputacji. Nie mogę tego zrobić. Nie zrobię tego. To inne. Myślę, że ty też musisz to przestudiować