Drive Dosyalarını Listeleme

Bu makalemizde Google Drive Apisi ile Drive içerisinde bulunan dosyalarımızı listeleyeceğiz. Bu apimiz diğer apilere nazaran daha basit ve anlaşılması daha kolay olan bir apidir. Bu apide harici bir fonksiyon yazmadan direkt olarak client den ürettiğimiz Google gmail servisimizin içerisinde barındırdığı fonksiyonu kullanıyoruz.


Öncelikle bu apiyi kullanmamız için apiyi etkinleştirmemiz gerekiyor, OAuth 2.0 istemci kimliğine sahip olmanız ve Google Client Kütüphanelerini edinmiş olmamız gerekiyor bilgilendirme kategorisinin altındaki makalemizde Php ile OAuth 2.0 kullanma başlıklı makalemizde OAuth nasıl alındığını ve Kütüphaneleri nasıl yüklediğimiz anlatmıştık. Buraya tıklayarak Php ile OAuth 2.0 kullanımı makalesine gidebilir veya Genel Bilgilendirme kategorisine göz atabilirsiniz.


Google Drive Apisini Kullanmak için
  • console.developers.google.com’da Projemizi oluşturduk
  • Kullanacağımız apiyi etkinleştirdik
  • OAuth istemci kimliğini oluşturduk ve oluşturuken sitemize gerekli izinleri verdik.
  • OAuth istemci kimliğinin json dosyasını indirdik
  • GitHub dan Google Client Api kütüphanesini indirdik
  • Composer yardımıyla Vendor  klasörümüzü de edindik

Eğer bu işlemleri yapmadıysanız Buraya Tıklayarak OAuth Makalemi inceleyiniz. Bu işlemleri yaptıksak alt yapı hazır demektir şimdi aşağıdaki dosyalarımızı oluşturalım

  • index.php
  • oauth2callback.php

Şimdi fonksiyonumuza gelecek olursak Gmail servisinden ürettiğimiz $drive değişkenine bakalım. Bu şekilde kullanarak drive üzerinde bulunan dosyalarımızın bilgilerini ayrıntılı şekilde $files değişkenine dizi olarak atadık.

$files = $drive->files->listFiles(array())->getFiles();

index.php dosyasının içerisine

<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();
$client = new Google_Client();
$client->setAuthConfig('jsondrive.json');
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
 $client->setAccessToken($_SESSION['access_token']);
 $drive = new Google_Service_Drive($client);
 $files = $drive->files->listFiles(array())->getFiles();
echo "<pre>";
 print_r($files);
} else {
 $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/googleapi/oauth2callback.php';
 header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

oauth2callback.php dosyasını içerisine

<?php
require_once __DIR__.'/vendor/autoload.php';
session_start();

$client = new Google_Client();
$client->setAuthConfigFile('jsondrive.json');
$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/googleapi/oauth2callback.php');
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);

if (! isset($_GET['code'])) {
 $auth_url = $client->createAuthUrl();
 header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
} else {
 $client->authenticate($_GET['code']);
 $_SESSION['access_token'] = $client->getAccessToken();
 $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/googleapi/';
 header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}

Kodları kendinize göre düzenlemeniz gerekiyor.

Json dosyasının yolunu ve yönlendirilecek url bilgilerini düzenleyip çalıştırdığımızda karşımıza şöyle bir Array çıkacak

Arrayın içerisinde anadizinde ne kadar dosya varsa hepsinin bilgisini çekmiş olduk yukarıdaki resimde dosyaların sadece bir tanesinin bilgileri yer almaktadır. Ana dizinde veya diğer dizinlerde gezinerek tüm dosyaların bilgilerine erişebiliriz bunların ne kadar yer kapladığını öğrenebiliriz isimlerini paylaşıma açık olup olmadıklarını ayarlarını dosya tipini buna benzer bir çok bilgiye artık sahibiz.

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir