Bu makalemizde Google Gmail Apisi ile Gmail içerisinde bulunan Etiketleri (Kategorileri) listeleyeceğiz.
Ö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 Gmail APİSİNİ KULLANMAK İÇİN
- 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
index.php dosyasının içerisine
<?php require_once __DIR__.'/vendor/autoload.php'; session_start(); $client = new Google_Client(); $client->setAuthConfig('jsonmail.json'); $client->addScope(Google_Service_Gmail::GMAIL_READONLY); if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { $client->setAccessToken($_SESSION['access_token']); $service = new Google_Service_Gmail($client); // Print the labels in the user's account. $user = 'me'; $results = $service->users_labels->listUsersLabels($user); echo "<pre>"; if (count($results->getLabels()) == 0) { print "No labels found.\n"; } else { print "Labels:\n"; foreach ($results->getLabels() as $label) { printf("- %s\n", $label->getName()); } } } else { $redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/1-proje/mail/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('jsonmail.json'); $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/1-proje/mail/oauth2callback.php'); $client->addScope(Google_Service_Gmail::GMAIL_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'] . '/1-proje/mail/'; 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