Anda di halaman 1dari 6

Upload File ke Google Drive Via

Google API dengan PHP


Rosihan Ari Yuana / May 27, 2020

Ingin membuat sendiri aplikasi sederhana untuk upload file ke Google Drive kita
menggunakan script PHP? Tutorial ini akan menjelaskan secara detil langkah demi langkah
pembuatan aplikasinya. Untuk mengintegrasikan aplikasi yang dibuat dengan PHP ke
Google Drive nantinya menggunakan Google API. Meskipun agak ribet sedikit, tapi tidak
sulit kok membuatnya.

Sebelum kita mulai membuat script PHP nya, terlebih dahulu akan disampaikan beberapa
hal yang perlu dipersiapkan khususnya untuk keperluan integrasinya dengan Google API.
Kebutuhan dasar yang diperlukan antara lain:

• Akun Google
• PHP dengan versi minimal 5.4, lebih tinggi versinya lebih baik
• OAuth Credential file
• PHP Google API Client Module
File oauth credentials adalah semacam file yang berisi data dalam format JSON yang
nantinya diperlukan ketika proses login ke Google API via oauth (open authentication) melalui
aplikasi yang kita buat .
Adapun PHP Google API Client Module adalah kumpulan library-library yang dibuat untuk
platform PHP, untuk keperluan integrasi dengan layanan Google via Google API.

Membuat OAuth Credential File


Untuk membuat file ini, kita bisa melakukannya melalui Google API Console. Sebelum kita
membuatnya, misal diasumsikan nantinya kita akan membuat aplikasi upload filenya di url
‘http://localhost/gdrive/upload.php’. URL aplikasi ini nantinya akan diperlukan ketika
pembuatan OAuth Credential file, karena URL ini akan diregisterkan terlebih dahulu di
Google API.
Baik, selanjutnya kita bisa mulai proses membuat file OAuth Credentialnya. Setelah masuk
ke Google API Console, silakan masuk ke menu ‘Credentials’ yang ada di sidebar sebelah
kiri.

Setelah itu klik ‘Create Credentials’ yang ada di menu paling atas halaman, kemudian pilih
submenu ‘OAuth client ID’

Proses berikutnya adalah menentukan tipe aplikasi, dalam hal ini karena kita akan
membuat aplikasi web maka dipilih ‘Web Application’ di bagian ‘Application Type’. Isikan
pula nama aplikasinya. Nama aplikasi pada prinsipnya bebas, misalkan dalam contoh ini
kita beri nama ‘MyApp01’.

Masih di form yang sama, lihat di bagian ‘Authorized redirect URIs’. Pada bagian ini isikan
URL dari aplikasi yang akan kita buat, yaitu ‘http://localhost/gdrive/upload.php’
Setelah selesai, silakan klik tombol ‘Create’.

Apabila berhasil, maka akan muncul nama aplikasi yang tadi kita buat. Selanjutnya silakan
diunduh file tersebut melalui link yang disediakan.

Setelah file tersebut diunduh, akan kita dapatkan sebuah file .json dengan nama file yang
cukup panjang (berawalan client_secret_XXXXXX.json) di mana nama file tersebut
merupakan client ID dari aplikasi kita. Karena nama filenya cukup panjang, maka bisa
direname nama filenya misalkan dengan nama ‘oauth-credentials.json‘

Mendapatkan PHP Google API Client


Module
Setelah file OAuth Credential file didapatkan, langkah berikut nya adalah mengunduh
library Google API Client Module untuk platform PHP. Cara untuk mengunduh library ini
sebenarnya ada 2 cara, yaitu bisa menggunakan composer, atau mengunduhnya secara
manual di Github.
Namun, dari eksperimen yang saya coba dari keduanya. Untuk pengunduhan lewat
composer sepertinya kurang kompatibel dengan PHP 7.4 karena ada beberapa function
yang deprecated. Sehingga saya putuskan untuk menggunakan cara pengunduhan secara
manual. Dalam hal ini saya menggunakan Google API Client v2.4.1.
Setelah file Google API Client diunduh, selanjutnya diektrak di komputer kita. Pada hasil
ekstraksi akan diperoleh dua folder yaitu ‘vendor’ dan ‘src’, Kedua folder ini nantinya akan
dipakai di aplikasi yang akan dibuat.
Mulai Coding…
OK, sekarang kita mulai ke bagian intinya yaitu codingnya 

Oya dalam contoh ini, saya kebetulan menggunakan XAMPP yang menggunakan versi PHP
7.4. Sebelum mulai proses coding, terlebih dahulu saya buat folder ‘gdrive‘ di dalam ‘htdocs’
nya XAMPP. Kemudian, saya pindahkan beberapa hal ini ke dalam folder ‘gdrive’ tersebut:
• file ‘oauth-credential.json‘ yang tadi sudah diunduh
• folder ‘vendor‘ dari Google API Client yang tadi sudah diekstrak
• folder ‘src‘ dari Google API Client yang tadi juga sudah diekstrak
Selanjutnya kita mulai mengcoding script upload.php nya. Sebelum mulai coding, terlebih
dahulu kita harus memahami mekanisme proses integrasi antara aplikasi yang nanti dibuat
dengan Google API. Berikut ini adalah mekanisme yang terjadi:

1. Aplikasi pertama kali akan melakukan login menggunakan OAuth melalui sebuah URL
tertentu
2. Jika login sukses, Google API akan mengirimkan sebuah kode atau token yang nantinya
digunakan untuk mengakses layanan Google API.
3. Supaya token ini bisa selalu bisa terbaca, sebaiknya kita simpan ke dalam sebuah session.
4. Dengan menggunakan token tersebut, proses upload file ke Google Drive nantinya akan
dilakukan.
Berdasarkan mekanisme di atas, kita buat script upload.php sebagai berikut.
1<?php
2session_start();
3include 'vendor/autoload.php';

5// setting config untuk layanan akses ke google drive
6$client = new Google_Client();
7$client->setAuthConfig("oauth-credentials.json");
8$client->addScope("https://www.googleapis.com/auth/drive");
9$service = new Google_Service_Drive($client);
10 
11// mengecek keberadaan token session
12if (empty($_SESSION['upload_token'])){
13    // jika token belum ada, maka lakukan login via oauth
14    $authUrl = $client->createAuthUrl();
15    header("Location:".$authUrl);
16 
17} else {
18    // jika token sudah ada, maka munculkan form upload file
19?>
20    <h1>Upload to GDrive</h1>
21    <form method="post" enctype="multipart/form-data" action="upload.php">
22        Pilih File:
23
          <input type="file" name="fileToUpload" id="fileToUpload">
          <input type="submit" value="Upload File" name="submit">    
24    </form>
25 
26<?php
27    // jika form upload disubmit
28    if (isset($_POST['submit'])){
29
        // menggunakan token untuk mengakses google drive 
30
        $client->setAccessToken($_SESSION['upload_token']);
31
32        // membaca token respon dari google drive
33        $client->getAccessToken();
34 
35        // instansiasi obyek file yg akan diupload ke Google Drive
36        $file = new Google_Service_Drive_DriveFile();
37        // set nama file di Google Drive disesuaikan dg nama file aslinya
38        $file->setName($_FILES["fileToUpload"]["name"]);
39        // proses upload file ke Google Drive dg multipart
40        $result = $service->files->create($file, array(
41            'data' => file_get_contents($_FILES["fileToUpload"]["tmp_name"]),
42            'mimeType' => 'application/octet-stream',
43            'uploadType' => 'multipart'));
44 
45        // menampilkan nama file yang sudah diupload ke google drive
46
        echo $result->name."<br>";
47
    }
48
49 
50}
51 
52// proses membaca token pasca login
53if (isset($_GET['code'])) {
54  $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
55  // simpan token ke session
56  $_SESSION['upload_token'] = $token;
57}
58 
?>

OK.. script upload.php sudah jadi. Sehingga di dalam folder ‘gdrive’ berisi beberapa item file dan
folder berikut ini:
Sekarang saatnya kita coba menjalankannya. Silakan buka di browser URL
http://localhost/gdrive/upload.php.

Untuk pertama kalinya, kemungkinan kita akan diminta untuk login ke akun Google, dan
diberikan beberapa konfirmasi authorisasi terhadap layanan Google API nya. Selanjutnya
silakan browse sembarang file dari komputer dari form uploadnya. Setelah disubmit, akan
Anda dapatkan file tersebut nongol di Google Drive kita, seperti pada tampilan berikut ini.

OK selamat mencoba, dan silakan mengembangkannya sendiri dengan mempelajari fitur-


fitur lainnya di Google Drive API Documentation.

Anda mungkin juga menyukai