Lecaw

Учимся создавать Web-сайты

Google API – получение списка контактов

August 7, 2012 442hits

В этом учебном руководстве я расскажу о приглашении друзей. Я думаю, что это – ключ к успеху для каждого веб-сайта. Сегодня я покажу, как создать простое и эффективное средство импорта контактов из Gmail, используя авторизацию OAuth и API. Кроме этого я расскажу о получении доступа к Google API.

 ДЕМОИсходные файлы

 

В качестве первого шага – подготовим наш собственный проект в консоли Google API, откройте эту ссылку и создайте проект. Затем нам нужно перейти в раздел 'API Access' и нажать кнопку 'Create an OAuth 2.0 client ID'. Теперь мы должны ввести имя для нашего нового проекта:

Нажмите кнопку Далее, на втором шаге мы должны установить URL места назначения страницы:

Наконец, у нас есть наш ID клиента и секретный ID:

Шаг 1. PHP

Создайте index.html со следующим содержанием:

<?php
// отключите предупреждения
if (version_compare(phpversion(), "5.3.0", ">=") == 1)
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
else
error_reporting(E_ALL & ~E_NOTICE); $sClientId = 'YOUR_GOOGLE_CLIENT_ID';
$sClientSecret = 'YOUR_GOOGLE_CLIENT_SECRET';
$sCallback = 'http://www.lecaw.ru/source291/index.php'; // вызов URL, не забудьте заменить на свой!
$iMaxResults = 20; // максимальный результат
$sStep = 'auth'; // текущий шаг // включение библиотеки GmailOath
https://code.google.com/p/rspsms/source/browse/trunk/system/plugins/GmailContacts/GmailOath.php?r=11
include_once('classes/GmailOath.php'); session_start(); // подготовить новые экземпляры в GmailOath и GmailGetContacts
$oAuth = new GmailOath($sClientId, $sClientSecret, $argarray, false, $sCallback);
$oGetContacts = new GmailGetContacts(); if ($_GET && $_GET['oauth_token']) { $sStep = 'fetch_contacts'; // выборка контактов // декодировать запрос
$sDecodedToken = $oAuth->rfc3986_decode($_GET['oauth_token']);
$sDecodedTokenSecret = $oAuth->rfc3986_decode($_SESSION['oauth_token_secret']); // get 'oauth_verifier'
$oAuthVerifier = $oAuth->rfc3986_decode($_GET['oauth_verifier']); // подготовка запроса доступа и получение списка контактов
$oAccessToken = $oGetContacts->get_access_token($oAuth, $sDecodedToken, $sDecodedTokenSecret, $oAuthVerifier, false, true, true);
$sAccessToken = $oAuth->rfc3986_decode($oAccessToken['oauth_token']);
$sAccessTokenSecret = $oAuth->rfc3986_decode($oAccessToken['oauth_token_secret']);
$aContacts = $oGetContacts->GetContacts($oAuth, $sAccessToken, $sAccessTokenSecret, false, true, $iMaxResults); // превратить массив с контактами в HTML строку
$sContacts = $sContactName = '';
foreach($aContacts as $k => $aInfo) {
$sContactName = end($aInfo['title']);
$aLast = end($aContacts[$k]);
foreach($aLast as $aEmail) {
$sContacts .= '<p>' . $sContactName . '(' . $aEmail['address'] . ')</p>';
}
}
} else {
// подготовить запрос доступа и установить его на сессию
$oRequestToken = $oGetContacts->get_request_token($oAuth, false, true, true);
$_SESSION['oauth_token'] = $oRequestToken['oauth_token'];
$_SESSION['oauth_token_secret'] = $oRequestToken['oauth_token_secret'];
} ?>
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="utf-8" />
<title>Google API - Get contact list | Script Tutorials</title>
<link href="/css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<header>
<h2>Google API - Get contact list</h2>
<a href="#" class="stuts">Back to original tutorial on <span>Script Tutorials</span></a>
</header>
<img src="/oauthLogo.png" class="google" alt="google" /> <?php if ($sStep == 'auth'): ?>
<center>
<h1>Step 1. OAuth</h1>
<h2>Please click <a href="#">this link</a> in order to get access token to receive contacts</h2>
</center>
<?php elseif ($sStep == 'fetch_contacts'): ?>
<center>
<h1>Step 2. Results</h1>
<br />
<?= $sContacts ?>
</center>
<?php endif ?> </body>
</html>

Как видите – вначале мы включаем библиотеку "GmailOath.php". Эту библиотеку Вы можете скачать здесь. После её загрузки - обратите внимание на код. Как вы можете заметить - главная функциональность разделена на 2 секции: авторизация и выборка из списка контактов. Как обычно - я прокомментировал некоторую часть кода для лучшего понимания.

Когда мы нажимаем кнопку авторизации, это откроет страницу авторизации Google, где мы должны предоставить доступ для нашего приложения, чтобы получить наш список контактов:

 ДЕМОИсходные файлы

 

Дополнительная информация

Влерий Аликин - веб-разработчик & дизайнер. Соучредитель и член команды Lecaw.

Эл. почта
RATTING:
(1 Голосовать)

Оставить комментарий