Ambil Data Diri Google Plus Dengan PHP dan Google API

Belum lama ini saya coba-coba API nya si Google dengan mengambil data diri Google Plus. Jadi, saat dia login di aplikasi kita nanti, data-data yang dia input di Google Plus bisa diambil. Jadi, mungkin dapat jadi satu pilihan kembali apabila user ingin registrasi tak perlu membuat form input untuk menyimpan data user, cukup satu tombol untuk aksi ke API nya Google, kita bisa dapatkan data-data si user tersebut.

Baiklah, mari mulai bagaimana cara penerapannya. Sama seperti Facebook dan Twitter, untuk bisa menggunakan API mereka, kita diharuskan mendaftarkan diri untuk mencatat API code secret dan callbacknya. Berikut ini saya coba buat step per step proses daftar applikasi kita ke Google.

Buat Aplikasi Pada Google API
#1 : Pastikan terlebih dahulu anda login di akun Gmail anda. Setelah login, klik link ini : https://code.google.com/apis/console. Akan terlihat gambar dibawah ini.

google API

#2 : Bila sudah, klik API Project, lalu Create project baru.

#3 : Saat klik tombol create, anda akan diarahkan ke halaman service. Aktifkan service Google+ API

#4 : Bila sudah, anda akan diarahkan ke halaman API Access. Klik tomboh Create Oauth client ID

#5 : Masukan data Oauth Client ID anda.

#6 : Pilih Web Application, lalu masukan untuk hostname nya localhost.

#7 : Bila sudah, Create Client ID, lalu akan muncul halaman review yang telah kita buat tadi beserta Client ID, Client Secret dan Redirect URL / Callbacknya.

#8 : Karena kita akan mencobanya pada localhost, jadi kita perbaiki kembali redirect URL pada ClientID yang kita setting awal tadi. Klik Edit Settings.

Proses registrasi aplikasi di Google API telah cukup sampai disini, kini kita buat aplikasi pada localhost.

Membuat Aplikasi Sederhana Di Localhost

Berikut ini adalah proses cara setting buat aplikasi sederhana di localhost :
#1 : Yang pertama adalah anda download terlebih dahulu Google API Client untuk PHP pada link ini http://code.google.com/p/google-api-php-client/.

#2 : Setelah anda mendownloadnya, buat folder pada xampp/htdocs/ dengan nama “gplus”.

#3 : Setelah itu, anda copy semua folder “src” pada Google API Client untuk PHP yang baru saja anda
download tadi. Simpan folder “src” pada folder “gplus”.

#4 : Di dalam folder “src” terdapat file config.php. Buka dengan notepad++ anda, lalu ubah value dari item config global “oauth2_client_id”, “oauth2_client_secret”, “oauth2_redirect_uri”. Isi value ketiga item tersebut dengan settingan aplikasi yang telah kita buat tadi pada Google.

#5 : Bila sudah, buat file index.php pada folder “gplus”. Isi index.php tersebut pada code dibawah ini :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?php
require_once 'src/apiClient.php';
require_once 'src/contrib/apiPlusService.php';

session_start();

$client = new apiClient();
$client->setApplicationName("Google+ PHP Starter Application");
$plus = new apiPlusService($client); #create object api GPlus

# jika logout
if (isset($_REQUEST['logout'])) {
  unset($_SESSION['access_token']); # hapus access_token
}

# jika telah login, ambil code token response nya
if (isset($_GET['code'])) {
  $client->authenticate();
  $_SESSION['access_token'] = $client->getAccessToken(); # simpan accss_token dlm session
  header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

# jika terdapat access_token, set access token
if (isset($_SESSION['access_token'])) {
  $client->setAccessToken($_SESSION['access_token']);
}

if ($client->getAccessToken()) {
  # ambil data diri
  $me = $plus->people->get('me');
} else {
  $authUrl = $client->createAuthUrl();
}
?>
<!doctype html>
<html>
<head>
  <meta charset="utf-8">
</head>
<body>
<header><h1>Google+ Sample App</h1></header>
  <?php
    if( !empty($me) ) :
  ?>
    <table>
      <tr>
        <td>Nama Lengkap</td>
        <td>:</td>
        <td><?php echo $me['displayName']; ?></td>
      </tr>
      <tr>
        <td>Image Profile</td>
        <td>:</td>
        <td><img src="<?php echo $me['image']['url']; ?>"/></td>
      </tr>
      <tr>
        <td>Link Pribadi</td>
        <td>:</td>
        <td>
          <ul>
            <?php for ( $i=0; $i<count($me['urls']); $i++ ) : ?>
              <li><a href="<?php echo $me['urls'][$i]['value']; ?>"><?php echo $me['urls'][$i]['value']; ?></a></li>
            <?php endfor; ?>
          </ul>
        </td>
      </tr>
      <tr>
        <td>Organsisasi Terakhir</td>
        <td>:</td>
        <td>
          <ul>
            <?php for ( $i=0; $i<count($me['organizations']); $i++ ) : ?>
              <li>
                <?php echo $me['organizations'][$i]['name']; ?> - <?php echo $me['organizations'][$i]['title']; ?> - <?php echo $me['organizations'][$i]['type']; ?>
              </li>
            <?php endfor; ?>
          </ul>
        </td>
      </tr>
    </table>
  <?php
    endif;
  ?>
 
  <?php
    if(isset($authUrl)) {
    print "<a class='login' href='$authUrl'>Connect Me!</a>";
    } else {
     print "<a class='logout' href='?logout'>Logout</a>";
    }
  ?>
</body>
</html>

Selesai, mari kita coba jalankan pada http://localhost/gplus/index.php

Tampilan awal, anda akan diminta untuk melakukan login terlebih dahulu. Bila sudah akan diarahkan ke permission aplikasi yang kita buat di Google tadi.

Bila kita setujui, akan terlihat data seperti dibawah ini :

Selesai sampai disini, semoga ada tambahan ilmunya ya 🙂

6 comments

    1. Oalah, udah beda ya..saya belum coba-coba lagi. Belum lama pakai Laravel Socialite. Coba pake Laravel aja, lebih mudah dan cepet kok. Asal tau aja konsepnya. Register URL callback, get token, tempel di kodingan. selesai deh 🙂

  1. Mas.. saya sudah coba tapi ada error.
    Parse error: syntax error, unexpected ‘[‘ in C:\xampp\htdocs\cloud_comp\src\Client.php on line 86

    apanya yang dirubah

  2. hmmm mantep nih, bisa di coba,,, tapi untuk CI ada ada pengaturan lain apa tidak?
    kalau misal kita ambil datanya custom gimana tuh?

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: