Membuat Upload Di Gdrive
Membuat Upload Di Gdrive
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.
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‘
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';
4
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.