Разумеется проще через UI, но в нашем случае рассмотрим процедуру поиска публичного профиля с точки зрения использования API. Требования: аккаунт Google, браузер, блокнот и немного терпения.
Открываем в браузере консоль API. Создаем новый проект.
Активируем Google+ API.
Переходим к параметрам доступа к проекту (вкладка API Access), копируем ключ проекта (API key).
Открываем блокнот, рисуем интерфейс: пара кнопок, текстовое поле и блочный элемент для отображения результатов.
Расставим элементы на свои места с помощью CSS. Вторую кнопку пока спрячем - будем отображать, если количество результатов запроса превысит количество отображенных.
Пишем скрипт. Не забываем вставить ключ проекта, скопированный ранее, в переменную API_KEY.
С максимальным количеством результатов запроса (переменной MAX_RESULTS) можно экспериментировать в диапазоне от 1 до 20.
Сохраняем, открываем в браузере, тестируем.
We are the champions :). Если терпение еще не закончилось - добавляем AJAX Style.
p.s. Полученное приложение поддерживается "современными" браузерами.
Открываем в браузере консоль API. Создаем новый проект.
Активируем Google+ API.
Переходим к параметрам доступа к проекту (вкладка API Access), копируем ключ проекта (API key).
Открываем блокнот, рисуем интерфейс: пара кнопок, текстовое поле и блочный элемент для отображения результатов.
<html> <head> <title>Plus People Finder</title> </head> <body> <button onclick="getPlus()">Поиск</button> <input id="txt" type="text" onkeyup="onKeyup(event)" /> <div id="pp"></div> <button id="btn">Еще результаты</button> </body> </html>
Расставим элементы на свои места с помощью CSS. Вторую кнопку пока спрячем - будем отображать, если количество результатов запроса превысит количество отображенных.
<html>
<head>
<title>Plus People Finder</title>
<style type="text/css">
input{width:100%; height:30px; margin-top:1px; font:normal 18px sans-serif;}
.pp{width:100%; height:40px; border-top:1px solid #000; border-bottom:1px solid #000; margin:1px; background-color:#fff;}
.pp:hover{background-color:#ddd;}
img{width:40px; height:40px;}
a{font:bold 18px sans-serif; margin-left:10px; vertical-align:top; text-decoration: none; outline: 0;}
a:hover{text-decoration:underline; color:#f00;}
button{width:100%; height:30px; text-align:center; font:bold 18px sans-serif; cursor:pointer;}
#btn{display:none;}
</style>
</head>
<body>
<button onclick="getPlus()">Поиск</button>
<input id="txt" type="text" onkeyup="onKeyup(event)" />
<div id="pp"></div>
<button id="btn">Еще результаты</button>
</body>
</html>
Пишем скрипт. Не забываем вставить ключ проекта, скопированный ранее, в переменную API_KEY.
С максимальным количеством результатов запроса (переменной MAX_RESULTS) можно экспериментировать в диапазоне от 1 до 20.
<html>
<head>
<title>Plus People Finder</title>
<style type="text/css">
input{width:100%; height:30px; margin-top:1px; font:normal 18px sans-serif;}
.pp{width:100%; height:40px; border-top:1px solid #000; border-bottom:1px solid #000; margin:1px; background-color:#fff;}
.pp:hover{background-color:#ddd;}
img{width:40px; height:40px;}
a{font:bold 18px sans-serif; margin-left:10px; vertical-align:top; text-decoration: none; outline: 0;}
a:hover{text-decoration:underline; color:#f00;}
button{width:100%; height:30px; text-align:center; font:bold 18px sans-serif; cursor:pointer;}
#btn{display:none;}
</style>
<script>
function getPlus(pageToken) {
var name = document.getElementById('txt').value;
var pp = document.getElementById('pp');
var btn = document.getElementById('btn');
if (name == '') {
clearDiv(pp);
btn.style.display = 'none';
return;
}
if(!pageToken) clearDiv(pp);
var API_KEY = 'Ключ_Вашего_Проекта';
var MAX_RESULTS = 20;
var requestString = 'https://www.googleapis.com/plus/v1/people?query=' + name +
'&maxResults=' + MAX_RESULTS + '&fields=items(displayName%2Cimage%2Curl)%2CnextPageToken&key=' + API_KEY;
if (pageToken) requestString += '&pageToken=' + pageToken;
var xhr = new XMLHttpRequest();
xhr.open('GET', requestString, true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if(xhr.readyState != 4 || xhr.status != 200) return;
clearTimeout(timeout);
var res = JSON.parse(xhr.responseText);
for (var i=0; i<res.items.length; i++) {
var div = pp.appendChild(document.createElement("div"));
div.className = 'pp';
var img = div.appendChild(document.createElement("img"));
img.src = res.items[i].image.url;
var anc = div.appendChild(document.createElement("a"));
anc.className = 'anc';
anc.href = res.items[i].url;
anc.target = '_blank';
anc.appendChild(document.createTextNode(res.items[i].displayName));
}
if(res.items.length == MAX_RESULTS) {
btn.style.display = 'block';
btn.onclick = function() { getPlus(res.nextPageToken) };
} else {
btn.style.display = 'none';
}
}
xhr.send(null);
var timeout = setTimeout( function(){ xhr.abort() }, 5000);
}
function onKeyup(e) {
var keyCode = e.which || e.keyCode;
if(keyCode == 13) getPlus();
}
function clearDiv(div) {
while(div.lastChild)
div.removeChild(div.lastChild);
}
</script>
</head>
<body>
<button onclick="getPlus()">Поиск</button>
<input id="txt" type="text" onkeyup="onKeyup(event)" />
<div id="pp"></div>
<button id="btn">Еще результаты</button>
</body>
</html>
Сохраняем, открываем в браузере, тестируем.
We are the champions :). Если терпение еще не закончилось - добавляем AJAX Style.
p.s. Полученное приложение поддерживается "современными" браузерами.







Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации